+++ /dev/null
-<html>
- <head>
- <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
- <link rel="stylesheet" href='stylemain.css' type='text/css'>
- <link rel="stylesheet" href='colors.css' type='text/css'>
- <script language="javascript" src="util.js"></script>
- <script language="javascript">
-<!-- hide
-var ifCount = 0;
-
-function btnApply() {
- var loc = 'scinflt.cmd?action=add';
- var okChk = 0;
-
- with ( document.forms[0] ) {
- if ( txtfltname.value == '' ) {
- msg = 'Please enter incoming IP filtering name.';
- alert(msg);
- return;
- }
-
- if ( isValidName(txtfltname.value) == false ) {
- msg = 'Please enter valid incoming IP filtering name: No special characters.';
- alert(msg);
- return;
- }
-
- if ( srcaddr.value == "" && srcmask.value == "" && srcport.value == "" &&
- dstaddr.value == "" && dstmask.value == "" && dstport.value == "" &&
- protocol.selectedIndex == 0 ) {
- msg = 'At least one condition must be specified.'
- alert(msg);
- return;
- }
-
- if ( srcaddr.value != "" && isValidIpAddress(srcaddr.value) == false ) {
- msg = 'Source address "' + srcaddr.value + '" is invalid IP address.';
- alert(msg);
- return;
- }
-
- if ( srcmask.value != "" && isValidSubnetMask(srcmask.value) == false ) {
- msg = 'Source subnet mask "' + srcmask.value + '" is invalid subnet mask.';
- alert(msg);
- return;
- }
-
- if ( srcaddr.value == "" && srcmask.value != "" ) {
- msg = 'Cannot have source subnet mask without source IP address.';
- alert(msg);
- return;
- }
-
- if ( srcport.value != "" && isValidPort(srcport.value) == false ) {
- msg = 'Source port "' + srcport.value + '" is invalid port number or port range.';
- alert(msg);
- return;
- }
-
- if ( dstaddr.value != "" && isValidIpAddress(dstaddr.value) == false ) {
- msg = 'Destination address "' + dstaddr.value + '" is invalid IP address.';
- alert(msg);
- return;
- }
-
- if ( dstmask.value != "" && isValidSubnetMask(dstmask.value) == false ) {
- msg = 'Destination subnet mask "' + dstmask.value + '" is invalid subnet mask.';
- alert(msg);
- return;
- }
-
- if ( dstaddr.value == "" && dstmask.value != "" ) {
- msg = 'Cannot have destination subnet mask without destination IP address.';
- alert(msg);
- return;
- }
-
- if ( dstport.value != "" && isValidPort(dstport.value) == false ) {
- msg = 'Destination port "' + dstport.value + '" is invalid port number or port range.';
- alert(msg);
- return;
- }
-
- if ( (srcport.value != "" || dstport.value != "") &&
- (protocol.selectedIndex == 0 || protocol.selectedIndex == 4) ) {
- msg = 'TCP or UDP Protocol must be selected together with port number';
- alert(msg);
- return;
- }
-
- // wan interfaces
- if (ifCount == 1) {
- if (ifChk.checked)
- okChk = 1;
- }
- else {
- for (i = 0; i < ifCount; i++)
- if (ifChk[i].checked)
- okChk++;
- }
- if (!okChk) {
- alert('At least one configured Bridge interface must be selected.');
- return;
- }
- loc += '&wanIf=';
- if (chkAll.checked)
- loc += 'ALL';
- else {
- var first = true;
- if (ifCount == 1)
- loc += ifChk.value
- else {
- for (i = 0; i < ifCount; i++)
- if (ifChk[i].checked) {
- if (!first)
- loc += '|';
- loc += ifChk[i].value;
- first = false;
- }
- }
- }
-
- // incoming IP filter name
- loc += '&fltName=' + encodeUrl(txtfltname.value);
-
- // protocol
- idx = protocol.selectedIndex;
- val = protocol.options[idx].value;
- loc += '&protocol=' + val;
-
- // source address
- if ( srcaddr.value != "" )
- loc += '&srcAddr=' + srcaddr.value;
-
- // source subnet mask
- if ( srcmask.value != "" )
- loc += '&srcMask=' + srcmask.value;
-
- // source port
- if ( srcport.value != "" )
- loc += '&srcPort=' + srcport.value;
-
- // destination address
- if ( dstaddr.value != "" )
- loc += '&dstAddr=' + dstaddr.value;
-
- // destination subnet mask
- if ( dstaddr.value != "" )
- loc += '&dstMask=' + dstmask.value;
-
- // destination port
- if ( dstport.value != "" )
- loc += '&dstPort=' + dstport.value;
- }
-
- var code = 'location="' + loc + '"';
- eval(code);
-}
-
-function toggle(cb) {
- var chkCount = 0;
- with ( document.forms[0] ) {
- if (ifCount == 1)
- chkAll.checked = cb.checked;
- else {
- for (i = 0; i < ifCount; i++)
- if (ifChk[i].checked)
- chkCount++;
- if (chkCount == ifCount)
- chkAll.checked = true;
- else
- chkAll.checked = false;
- }
- }
-}
-
-function toggleIfs(cb) {
- var chkStatus = false;
- with ( document.forms[0] ) {
- if (chkAll.checked)
- chkStatus = true;
- if (ifCount == 1)
- ifChk.checked = chkStatus;
- else
- for (i = 0; i < ifCount; i++)
- ifChk[i].checked = chkStatus;
- }
-}
-
-// done hiding -->
- </script>
- </head>
- <body>
- <blockquote>
- <form>
- <b>Add IP Filter -- Incoming</b><br>
- <br>
- The screen allows you to create a filter rule to identify incoming IP traffic
- by specifying a new filter name and at least one condition below. All of the
- specified conditions in this filter rule must be satisfied for the rule to take
- effect. Click 'Save/Apply' to save and activate the filter.<br>
- <br>
- <table border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td>Filter Name:</td>
- <td><input type='text' size="22" name="txtfltname"></td>
- </tr>
- <tr>
- <td colspan="2"> </td>
- </tr>
- <tr>
- <td>Protocol:</td>
- <td><select name='protocol' size="1">
- <option value="4">
-  
- <option value="0">
- TCP/UDP
- <option value="1">
- TCP
- <option value="2">
- UDP
- <option value="3">
- ICMP
- </select></td>
- </tr>
- <tr>
- <td>Source IP address:</td>
- <td><input type='text' size="22" name="srcaddr"></td>
- </tr>
- <tr>
- <td>Source Subnet Mask:</td>
- <td><input type='text' size="22" name="srcmask"></td>
- </tr>
- <tr>
- <td>Source Port (port or port:port):</td>
- <td><input type='text' size="22" name="srcport"></td>
- </tr>
- <tr>
- <td>Destination IP address:</td>
- <td><input type='text' size="22" name="dstaddr"></td>
- </tr>
- <tr>
- <td>Destination Subnet Mask:</td>
- <td><input type='text' size="22" name="dstmask"></td>
- </tr>
- <tr>
- <td>Destination Port (port or port:port):</td>
- <td><input type='text' size="22" name="dstport"></td>
- </tr>
- </table>
- <br>
- <b>WAN Interfaces (Configured in Routing mode and with firewall enabled
- only)</b>
- <br>
- Select at least one or multiple WAN interfaces displayed below to apply this
- rule.
- <br>
- <br>
- <table>
- <tr>
- <input type='checkbox' name='chkAll' checked onclick='toggleIfs(this)'> Select All</tr>
- <tr>
- <script language="javascript">
-<!-- hide
-{
- var i = 0;
- var interfaceInfo = '<%ejGetOther(wanInterfaceInfo, firewall)%>';
- var interfaces = interfaceInfo.split('|');
-
- for ( i = 0; i < interfaces.length; i++ ) {
- var names = interfaces[i].split('/');
- document.writeln("<tr> <input type='checkbox' name='ifChk' checked value=" +
- names[1] + '>' + ' ' + interfaces[i] + "</tr>");
- ifCount++;
- }
-}
-// done hiding -->
-</script>
- </tr>
- </table>
- <br><br>
- <center><input type='button' onClick='btnApply()' value='Save/Apply'></center>
- </form>
- </blockquote>
- </body>
-</html>