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
9 <link href="usr_main.css" rel="stylesheet" type="text/css">
10 <link href="usr_menus.css" rel="stylesheet" type="text/css"><script src="usr_menus.js" type="text/javascript"></script><script src="usr_menus_build.js" type="text/javascript"></script>
11 <script src="usr_common.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">
18 setPageTitle("<%ejGetWlJS(wlInterface)%>");
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 = 'Please enter valid incoming IP filtering name: No special characters.';
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 IP Filter", "<%ejGetJS(curUserName)%>", "<%ejGetOther(sysInfo, adslStd)%>", "<%ejGetOther(sysInfo, noBrPrtcl)%>", <%ejGetOther(sysInfo, pppIpExtension)%>, <%ejGetOther(sysInfo, enblFirewall)%>, <%ejGetOther(sysInfo, enblNat)%>, "<%ejGetWlJS(wlInterface)%>", <%ejGetJS(enblQos)%>);
213 <p>Create a filter to identify the incoming IP traffic by specifying at least one
214 condition below. If multiple conditions are specified, all of them take effect.
215 Press <b>Apply</b> to save and activate the filter.</p>
217 <table border="0" cellpadding="0" cellspacing="0">
219 <td><label for="txtfltname">Filter name:</label></td>
220 <td><input type='text' maxlength="15" size="22" name="txtfltname" id="txtfltname"></td>
223 <td><label for="">Protocol:</label></td>
224 <td><select name='protocol' id='protocol'>
225 <option value="0">TCP/UDP</option>
226 <option value="1">TCP</option>
227 <option value="2">UDP</option>
228 <option value="3">ICMP</option>
232 <td><label for="srcaddr">Source IP address:</label></td>
233 <td><input type='text' size="22" name="srcaddr" id="srcaddr"></td>
236 <td><label for="srcmask">Source subnet mask:</label></td>
237 <td><input type='text' size="22" name="srcmask" id="srcmask"></td>
240 <td><label for="srcport">Source port:</label></td>
241 <td><input type='text' size="22" name="srcport" id="srcport"> (port or port:port)</td>
244 <td><label for="dstaddr">Destination IP address:</label></td>
245 <td><input type='text' size="22" name="dstaddr" id="dstaddr"></td>
248 <td><label for="dstmask">Destination subnet mask:</label></td>
249 <td><input type='text' size="22" name="dstmask" id="dstmask"></td>
252 <td><label for="dstport">Destination port:</label></td>
253 <td><input type='text' size="22" name="dstport" id="dstport"> (port or port:port)</td>
257 <p><b>WAN Interfaces:</b> (Configured in Routing mode and Firewall enabled only)</p>
258 <p><input type='checkbox' name='chkAll' id='chkAll' checked onclick='toggleIfs(this)'> <label for="chkAll">Select all</label></p>
262 <script type="text/javascript">
266 var interfaceInfo = '<%ejGetOther(wanInterfaceInfo, firewall)%>';
267 var interfaces = interfaceInfo.split('|');
269 for ( i = 0; i < interfaces.length; i++ ) {
270 var names = interfaces[i].split('/');
271 document.writeln("<tr> <input type='checkbox' name='ifChk' checked value=" +
272 names[1] + '>' + ' ' + interfaces[i] + "</tr>");
280 <p><input type='button' onClick='btnApply()' value='Apply'></p>
283 <script type="text/javascript">