3 <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
4 <link rel="stylesheet" href='stylemain.css' type='text/css'>
5 <link rel="stylesheet" href='colors.css' type='text/css'>
6 <script language="javascript" src="util.js"></script>
7 <script language="javascript">
12 var loc = 'scinflt.cmd?action=add';
15 with ( document.forms[0] ) {
16 if ( txtfltname.value == '' ) {
17 msg = 'Please enter incoming IP filtering name.';
22 if ( isValidName(txtfltname.value) == false ) {
23 msg = 'Please enter valid incoming IP filtering name: No special characters.';
28 if ( srcaddr.value == "" && srcmask.value == "" && srcport.value == "" &&
29 dstaddr.value == "" && dstmask.value == "" && dstport.value == "" &&
30 protocol.selectedIndex == 0 ) {
31 msg = 'At least one condition must be specified.'
36 if ( srcaddr.value != "" && isValidIpAddress(srcaddr.value) == false ) {
37 msg = 'Source address "' + srcaddr.value + '" is invalid IP address.';
42 if ( srcmask.value != "" && isValidSubnetMask(srcmask.value) == false ) {
43 msg = 'Source subnet mask "' + srcmask.value + '" is invalid subnet mask.';
48 if ( srcaddr.value == "" && srcmask.value != "" ) {
49 msg = 'Cannot have source subnet mask without source IP address.';
54 if ( srcport.value != "" && isValidPort(srcport.value) == false ) {
55 msg = 'Source port "' + srcport.value + '" is invalid port number or port range.';
60 if ( dstaddr.value != "" && isValidIpAddress(dstaddr.value) == false ) {
61 msg = 'Destination address "' + dstaddr.value + '" is invalid IP address.';
66 if ( dstmask.value != "" && isValidSubnetMask(dstmask.value) == false ) {
67 msg = 'Destination subnet mask "' + dstmask.value + '" is invalid subnet mask.';
72 if ( dstaddr.value == "" && dstmask.value != "" ) {
73 msg = 'Cannot have destination subnet mask without destination IP address.';
78 if ( dstport.value != "" && isValidPort(dstport.value) == false ) {
79 msg = 'Destination port "' + dstport.value + '" is invalid port number or port range.';
84 if ( (srcport.value != "" || dstport.value != "") &&
85 (protocol.selectedIndex == 0 || protocol.selectedIndex == 4) ) {
86 msg = 'TCP or UDP Protocol must be selected together with port number';
97 for (i = 0; i < ifCount; i++)
102 alert('At least one configured Bridge interface must be selected.');
113 for (i = 0; i < ifCount; i++)
114 if (ifChk[i].checked) {
117 loc += ifChk[i].value;
123 // incoming IP filter name
124 loc += '&fltName=' + encodeUrl(txtfltname.value);
127 idx = protocol.selectedIndex;
128 val = protocol.options[idx].value;
129 loc += '&protocol=' + val;
132 if ( srcaddr.value != "" )
133 loc += '&srcAddr=' + srcaddr.value;
135 // source subnet mask
136 if ( srcmask.value != "" )
137 loc += '&srcMask=' + srcmask.value;
140 if ( srcport.value != "" )
141 loc += '&srcPort=' + srcport.value;
143 // destination address
144 if ( dstaddr.value != "" )
145 loc += '&dstAddr=' + dstaddr.value;
147 // destination subnet mask
148 if ( dstaddr.value != "" )
149 loc += '&dstMask=' + dstmask.value;
152 if ( dstport.value != "" )
153 loc += '&dstPort=' + dstport.value;
156 var code = 'location="' + loc + '"';
160 function toggle(cb) {
162 with ( document.forms[0] ) {
164 chkAll.checked = cb.checked;
166 for (i = 0; i < ifCount; i++)
167 if (ifChk[i].checked)
169 if (chkCount == ifCount)
170 chkAll.checked = true;
172 chkAll.checked = false;
177 function toggleIfs(cb) {
178 var chkStatus = false;
179 with ( document.forms[0] ) {
183 ifChk.checked = chkStatus;
185 for (i = 0; i < ifCount; i++)
186 ifChk[i].checked = chkStatus;
196 <b>Add IP Filter -- Incoming</b><br>
198 The screen allows you to create a filter rule to identify incoming IP traffic
199 by specifying a new filter name and at least one condition below. All of the
200 specified conditions in this filter rule must be satisfied for the rule to take
201 effect. Click 'Save/Apply' to save and activate the filter.<br>
203 <table border="0" cellpadding="0" cellspacing="0">
205 <td>Filter Name:</td>
206 <td><input type='text' size="22" name="txtfltname"></td>
209 <td colspan="2"> </td>
213 <td><select name='protocol' size="1">
215  
227 <td>Source IP address:</td>
228 <td><input type='text' size="22" name="srcaddr"></td>
231 <td>Source Subnet Mask:</td>
232 <td><input type='text' size="22" name="srcmask"></td>
235 <td>Source Port (port or port:port):</td>
236 <td><input type='text' size="22" name="srcport"></td>
239 <td>Destination IP address:</td>
240 <td><input type='text' size="22" name="dstaddr"></td>
243 <td>Destination Subnet Mask:</td>
244 <td><input type='text' size="22" name="dstmask"></td>
247 <td>Destination Port (port or port:port):</td>
248 <td><input type='text' size="22" name="dstport"></td>
252 <b>WAN Interfaces (Configured in Routing mode and with firewall enabled
255 Select at least one or multiple WAN interfaces displayed below to apply this
261 <input type='checkbox' name='chkAll' checked onclick='toggleIfs(this)'> Select All</tr>
263 <script language="javascript">
267 var interfaceInfo = '<%ejGetOther(wanInterfaceInfo, firewall)%>';
268 var interfaces = interfaceInfo.split('|');
270 for ( i = 0; i < interfaces.length; i++ ) {
271 var names = interfaces[i].split('/');
272 document.writeln("<tr> <input type='checkbox' name='ifChk' checked value=" +
273 names[1] + '>' + ' ' + interfaces[i] + "</tr>");
282 <center><input type='button' onClick='btnApply()' value='Save/Apply'></center>