1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3 (c) 2005 U.S. Robotics Corporation
7 <title>Add Incoming IP Filter</title>
9 <link href="usr_layout.css" type="text/css" rel="stylesheet" /><script src="usr_layout.js" type="text/javascript"></script>
10 <link href="usr_menus_dropdown.css" rel="stylesheet" type="text/css"><script src="usr_menus_dropdown.js" type="text/javascript"></script><script src="usr_menus_build.js" type="text/javascript"></script>
11 <link href="usr_device.css" type="text/css" rel="stylesheet" /><script src="usr_device.js" type="text/javascript"></script><link href="usr_91xx.css" type="text/css" rel="stylesheet" /><script src="usr_91xx.js" type="text/javascript"></script><script src="usr_resources.js" type="text/javascript"></script>
13 <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
15 <script type="text/javascript" src="util.js"></script>
16 <script type="text/javascript">
23 var loc = 'scinflt.cmd?action=add';
26 with ( document.forms[0] ) {
27 if ( txtfltname.value == '' ) {
28 msg = 'Please enter incoming IP filtering name.';
33 if ( isValidName(txtfltname.value) == false ) {
34 msg = "The filter name is invalid. Only alphanumeric characters are allowed.";
39 if ( srcaddr.value == "" && srcmask.value == "" && srcport.value == "" &&
40 dstaddr.value == "" && dstmask.value == "" && dstport.value == "" &&
41 protocol.selectedIndex < 0 ) {
42 msg = 'At least one condition must be specified.'
47 if ( srcaddr.value != "" && isValidIpAddress(srcaddr.value) == false ) {
48 msg = 'Source address "' + srcaddr.value + '" is invalid IP address.';
53 if ( srcmask.value != "" && isValidSubnetMask(srcmask.value) == false ) {
54 msg = 'Source subnet mask "' + srcmask.value + '" is invalid subnet mask.';
59 if ( srcaddr.value == "" && srcmask.value != "" ) {
60 msg = 'Cannot have source subnet mask without source IP address.';
65 if ( srcport.value != "" && isValidPort(srcport.value) == false ) {
66 msg = 'Source port "' + srcport.value + '" is invalid port number or port range.';
71 if ( dstaddr.value != "" && isValidIpAddress(dstaddr.value) == false ) {
72 msg = 'Destination address "' + dstaddr.value + '" is invalid IP address.';
77 if ( dstmask.value != "" && isValidSubnetMask(dstmask.value) == false ) {
78 msg = 'Destination subnet mask "' + dstmask.value + '" is invalid subnet mask.';
83 if ( dstaddr.value == "" && dstmask.value != "" ) {
84 msg = 'Cannot have destination subnet mask without destination IP address.';
89 if ( dstport.value != "" && isValidPort(dstport.value) == false ) {
90 msg = 'Destination port "' + dstport.value + '" is invalid port number or port range.';
95 if ( (srcport.value != "" || dstport.value != "") &&
96 (protocol.selectedIndex < 0 || protocol.selectedIndex == 3) ) {
97 msg = 'TCP or UDP Protocol must be selected together with port number';
108 for (i = 0; i < ifCount; i++)
109 if (ifChk[i].checked)
113 alert('At least one configured Bridge interface must be selected.');
124 for (i = 0; i < ifCount; i++)
125 if (ifChk[i].checked) {
128 loc += ifChk[i].value;
134 // incoming IP filter name
135 loc += '&fltName=' + encodeUrl(txtfltname.value);
138 idx = protocol.selectedIndex;
139 val = protocol.options[idx].value;
140 loc += '&protocol=' + val;
143 if ( srcaddr.value != "" )
144 loc += '&srcAddr=' + srcaddr.value;
146 // source subnet mask
147 if ( srcmask.value != "" )
148 loc += '&srcMask=' + srcmask.value;
151 if ( srcport.value != "" )
152 loc += '&srcPort=' + srcport.value;
154 // destination address
155 if ( dstaddr.value != "" )
156 loc += '&dstAddr=' + dstaddr.value;
158 // destination subnet mask
159 if ( dstaddr.value != "" )
160 loc += '&dstMask=' + dstmask.value;
163 if ( dstport.value != "" )
164 loc += '&dstPort=' + dstport.value;
167 var code = 'location = "' + loc + '"';
171 function toggle(cb) {
173 with ( document.forms[0] ) {
175 chkAll.checked = cb.checked;
177 for (i = 0; i < ifCount; i++)
178 if (ifChk[i].checked)
180 if (chkCount == ifCount)
181 chkAll.checked = true;
183 chkAll.checked = false;
188 function toggleIfs(cb) {
189 var chkStatus = false;
190 with ( document.forms[0] ) {
194 ifChk.checked = chkStatus;
196 for (i = 0; i < ifCount; i++)
197 ifChk[i].checked = chkStatus;
204 <body onload="initMenu();">
206 <script type="text/javascript">
207 writeHeader("Add Incoming IP Filter");
212 <p>Create a filter to identify the incoming IP traffic by specifying at least one
213 condition below. If multiple conditions are specified, all of them take effect.
214 Press <b>Apply</b> to save and activate the filter.</p>
216 <table border="0" cellpadding="0" cellspacing="0">
218 <td><label for="txtfltname">Filter name:</label></td>
219 <td><input type='text' maxlength="15" size="22" name="txtfltname" id="txtfltname"></td>
222 <td><label for="">Protocol:</label></td>
223 <td><select name='protocol' id='protocol'>
224 <option value="0">TCP/UDP</option>
225 <option value="1">TCP</option>
226 <option value="2">UDP</option>
227 <option value="3">ICMP</option>
231 <td><label for="srcaddr">Source IP address:</label></td>
232 <td><input type='text' size="22" name="srcaddr" id="srcaddr"></td>
235 <td><label for="srcmask">Source subnet mask:</label></td>
236 <td><input type='text' size="22" name="srcmask" id="srcmask"></td>
239 <td><label for="srcport">Source port:</label></td>
240 <td><input type='text' size="22" name="srcport" id="srcport"> (port or port:port)</td>
243 <td><label for="dstaddr">Destination IP address:</label></td>
244 <td><input type='text' size="22" name="dstaddr" id="dstaddr"></td>
247 <td><label for="dstmask">Destination subnet mask:</label></td>
248 <td><input type='text' size="22" name="dstmask" id="dstmask"></td>
251 <td><label for="dstport">Destination port:</label></td>
252 <td><input type='text' size="22" name="dstport" id="dstport"> (port or port:port)</td>
256 <p><b>WAN Interfaces:</b> (Configured in Routing mode and Firewall enabled only)</p>
257 <p><input type='checkbox' name='chkAll' id='chkAll' checked onclick='toggleIfs(this)'> <label for="chkAll">Select all</label></p>
261 <script type="text/javascript">
265 var interfaceInfo = '<%ejGetOther(wanInterfaceInfo, firewall)%>';
266 var interfaces = interfaceInfo.split('|');
268 for ( i = 0; i < interfaces.length; i++ ) {
269 var names = interfaces[i].split('/');
270 document.writeln("<tr> <input type='checkbox' name='ifChk' checked value=" +
271 names[1] + '>' + ' ' + interfaces[i] + "</tr>");
279 <p><input type='button' onClick='btnApply()' value='Apply'></p>
282 <script type="text/javascript">