1 <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML
4.0//EN'
>
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.
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>
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
)
35 off
= !E('_f_dmz_enable').checked
;
37 dip
= E('_f_dmz_ipaddr')
40 sip
= E('_f_dmz_sip');
44 var dif
= E('_dmz_ifname');
46 if (dif
.options
[(dif
.selectedIndex
)].disabled
) dif
.selectedIndex
= 0;
50 ferror
.clearAll(dip
, sip
);
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;
69 if (!verifyFields(null, false)) return;
72 en
= fom
.f_dmz_enable
.checked
;
73 fom
.dmz_enable
.value
= en
? 1 : 0;
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(',');
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);
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>
109 <tr id='body'
><td id='navi'
><script type='text/javascript'
>navi()</script></td>
111 <div id='ident'
><%
ident(); %></div>
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
) },
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
},
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>' }
140 <script type='text/javascript'
>if (nvram
.dmz_enable
== '1') show_notice1('<% notice("iptables"); %>');</script>
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();'
>
152 <script type='text/javascript'
>verifyFields(null, 1);</script>