Busybox: Upgrade to 1.21.1 (stable). lsof active.
[tomato.git] / release / src / router / www / forward-dmz.asp
blobe80b63da87afff8c1efad1aa8bb8c7888f43cb89
1 <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN'>
2 <!--
3 Tomato GUI
4 Copyright (C) 2006-2010 Jonathan Zarate
5 http://www.polarcloud.com/tomato/
7 For use with Tomato Firmware only.
8 No part of this file may be used without permission.
9 -->
10 <html>
11 <head>
12 <meta http-equiv='content-type' content='text/html;charset=utf-8'>
13 <meta name='robots' content='noindex,nofollow'>
14 <title>[<% ident(); %>] Forwarding: DMZ</title>
15 <link rel='stylesheet' type='text/css' href='tomato.css'>
16 <link rel='stylesheet' type='text/css' href='color.css'>
17 <script type='text/javascript' src='tomato.js'></script>
19 <!-- / / / -->
21 <script type='text/javascript' src='debug.js'></script>
23 <script type='text/javascript' src='interfaces.js'></script>
25 <script type='text/javascript'>
27 // <% nvram("dmz_enable,dmz_ipaddr,dmz_sip,dmz_ifname,lan_ifname,lan1_ifname,lan2_ifname,lan3_ifname"); %>
29 var lipp = '<% lipp(); %>.';
31 function verifyFields(focused, quiet)
33 var sip, dip, off;
35 off = !E('_f_dmz_enable').checked;
37 dip = E('_f_dmz_ipaddr')
38 dip.disabled = off;
40 sip = E('_f_dmz_sip');
41 sip.disabled = off;
43 /* VLAN-BEGIN */
44 var dif = E('_dmz_ifname');
45 dif.disabled = off;
46 if (dif.options[(dif.selectedIndex)].disabled) dif.selectedIndex = 0;
47 /* VLAN-END */
49 if (off) {
50 ferror.clearAll(dip, sip);
51 return 1;
54 if (dip.value.indexOf('.') == -1) dip.value = lipp + dip.value;
55 if (!v_ip(dip)) return 0;
57 if ((sip.value.length) && (!v_iptaddr(sip, quiet, 15))) return 0;
58 ferror.clear(sip);
60 return 1;
63 function save()
65 var fom;
66 var en;
67 var s;
69 if (!verifyFields(null, false)) return;
71 fom = E('_fom');
72 en = fom.f_dmz_enable.checked;
73 fom.dmz_enable.value = en ? 1 : 0;
74 if (en) {
75 // shorten it if possible to be more compatible with original
76 s = fom.f_dmz_ipaddr.value;
77 fom.dmz_ipaddr.value = (s.indexOf(lipp) == 0) ? s.replace(lipp, '') : s;
79 fom.dmz_sip.value = fom.f_dmz_sip.value.split(/\s*,\s*/).join(',');
80 form.submit(fom, 0);
83 function init() {
84 /* VLAN-BEGIN */
85 var dif = E('_dmz_ifname');
86 if(nvram.lan_ifname.length < 1)
87 dif.options[0].disabled=true;
88 if(nvram.lan1_ifname.length < 1)
89 dif.options[1].disabled=true;
90 if(nvram.lan2_ifname.length < 1)
91 dif.options[2].disabled=true;
92 if(nvram.lan3_ifname.length < 1)
93 dif.options[3].disabled=true;
94 if(nvram.dmz_enable == '1')
95 verifyFields(null,true);
96 /* VLAN-END */
99 </script>
101 </head>
102 <body onload='init()'>
103 <form id='_fom' method='post' action='tomato.cgi'>
104 <table id='container' cellspacing=0>
105 <tr><td colspan=2 id='header'>
106 <div class='title'>Tomato</div>
107 <div class='version'>Version <% version(); %></div>
108 </td></tr>
109 <tr id='body'><td id='navi'><script type='text/javascript'>navi()</script></td>
110 <td id='content'>
111 <div id='ident'><% ident(); %></div>
113 <!-- / / / -->
115 <input type='hidden' name='_nextpage' value='forward-dmz.asp'>
116 <input type='hidden' name='_service' value='firewall-restart'>
118 <input type='hidden' name='dmz_enable'>
119 <input type='hidden' name='dmz_ipaddr'>
120 <input type='hidden' name='dmz_sip'>
122 <div class='section-title'>DMZ</div>
123 <div class='section'>
124 <script type='text/javascript'>
125 createFieldTable('', [
126 { title: 'Enable DMZ', name: 'f_dmz_enable', type: 'checkbox', value: (nvram.dmz_enable == '1') },
127 { title: 'Destination Address', indent: 2, name: 'f_dmz_ipaddr', type: 'text', maxlen: 15, size: 17,
128 value: (nvram.dmz_ipaddr.indexOf('.') != -1) ? nvram.dmz_ipaddr : (lipp + nvram.dmz_ipaddr) },
129 /* VLAN-BEGIN */
130 { title: 'Destination Interface', indent: 2, name: 'dmz_ifname', type: 'select',
131 options: [['br0','LAN (br0)'],['br1','LAN1 (br1)'],['br2','LAN2 (br2)'],['br3','LAN3 (br3)']], value: nvram.dmz_ifname },
132 /* VLAN-END */
133 { title: 'Source Address<br>Restriction', indent: 2, name: 'f_dmz_sip', type: 'text', maxlen: 512, size: 64,
134 value: nvram.dmz_sip, suffix: '<br><small>(optional; ex: "1.1.1.1", "1.1.1.0/24", "1.1.1.1 - 2.2.2.2" or "me.example.com")</small>' }
136 </script>
137 </div>
139 <br>
140 <script type='text/javascript'>if (nvram.dmz_enable == '1') show_notice1('<% notice("iptables"); %>');</script>
142 <!-- / / / -->
144 </td></tr>
145 <tr><td id='footer' colspan=2>
146 <span id='footer-msg'></span>
147 <input type='button' value='Save' id='save-button' onclick='save()'>
148 <input type='button' value='Cancel' id='cancel-button' onclick='reloadPage();'>
149 </td></tr>
150 </table>
151 </form>
152 <script type='text/javascript'>verifyFields(null, 1);</script>
153 </body>
154 </html>