tag rc6
[openwrt/svn-archive/openwrt.git] / package / webif / files / www / cgi-bin / webif / network-wan.sh
1 #!/usr/bin/webif-page
2 <?
3 . /usr/lib/webif/webif.sh
4
5 load_settings network
6
7 FORM_dns="${wan_dns:-$(nvram get wan_dns)}"
8 LISTVAL="$FORM_dns"
9 handle_list "$FORM_dnsremove" "$FORM_dnsadd" "$FORM_dnssubmit" 'ip|FORM_dnsadd|@TR<<DNS Address>>|required' && {
10 FORM_dns="$LISTVAL"
11 save_setting network wan_dns "$FORM_dns"
12 }
13 FORM_dnsadd=${FORM_dnsadd:-192.168.1.1}
14
15 if empty "$FORM_submit"; then
16 FORM_wan_proto=${wan_proto:-$(nvram get wan_proto)}
17 case "$FORM_wan_proto" in
18 # supported types
19 static|dhcp|pptp|pppoe) ;;
20 # otherwise select "none"
21 *) FORM_wan_proto="none";;
22 esac
23
24 # pptp, dhcp and static common
25 FORM_wan_ipaddr=${wan_ipaddr:-$(nvram get wan_ipaddr)}
26 FORM_wan_netmask=${wan_netmask:-$(nvram get wan_netmask)}
27 FORM_wan_gateway=${wan_gateway:-$(nvram get wan_gateway)}
28
29 # ppp common
30 FORM_ppp_username=${ppp_username:-$(nvram get ppp_username)}
31 FORM_ppp_passwd=${ppp_passwd:-$(nvram get ppp_passwd)}
32 FORM_ppp_idletime=${ppp_idletime:-$(nvram get ppp_idletime)}
33 FORM_ppp_redialperiod=${ppp_redialperiod:-$(nvram get ppp_redialperiod)}
34 FORM_ppp_mtu=${ppp_mtu:-$(nvram get ppp_mtu)}
35
36 redial=${ppp_demand:-$(nvram get ppp_demand)}
37 case "$redial" in
38 1|enabled|on) FORM_ppp_redial="demand";;
39 *) FORM_ppp_redial="persist";;
40 esac
41
42 FORM_pptp_server_ip=${pptp_server_ip:-$(nvram get pptp_server_ip)}
43 else
44 SAVED=1
45
46 empty "$FORM_wan_proto" && {
47 ERROR="@TR<<No WAN Proto|No WAN protocol has been selected>>"
48 return 255
49 }
50
51 case "$FORM_wan_proto" in
52 static)
53 V_IP="required"
54 V_NM="required"
55 ;;
56 pptp)
57 V_PPTP="required"
58 ;;
59 esac
60
61 validate <<EOF
62 ip|FORM_wan_ipaddr|@TR<<IP Address>>|$V_IP|$FORM_wan_ipaddr
63 netmask|FORM_wan_netmask|@TR<<Netmask>>|$V_NM|$FORM_wan_netmask
64 ip|FORM_wan_gateway|@TR<<Default Gateway>>||$FORM_wan_gateway
65 ip|FORM_pptp_server_ip|@TR<<PPTP Server IP>>|$V_PPTP|$FORM_pptp_server_ip
66 EOF
67 equal "$?" 0 && {
68 save_setting network wan_proto $FORM_wan_proto
69
70 # Settings specific to one protocol type
71 case "$FORM_wan_proto" in
72 static) save_setting network wan_gateway $FORM_wan_gateway ;;
73 pptp) save_setting network pptp_server_ip "$FORM_pptp_server_ip" ;;
74 esac
75
76 # Common settings for PPTP, Static and DHCP
77 case "$FORM_wan_proto" in
78 pptp|static|dhcp)
79 save_setting network wan_ipaddr $FORM_wan_ipaddr
80 save_setting network wan_netmask $FORM_wan_netmask
81 ;;
82 esac
83
84 # Common PPP settings
85 case "$FORM_wan_proto" in
86 pppoe|pptp)
87 empty "$FORM_ppp_username" || save_setting network ppp_username $FORM_ppp_username
88 empty "$FORM_ppp_passwd" || save_setting network ppp_passwd $FORM_ppp_passwd
89
90 # These can be blank
91 save_setting network ppp_idletime "$FORM_ppp_idletime"
92 save_setting network ppp_redialperiod "$FORM_ppp_redialperiod"
93 save_setting network ppp_mtu "$FORM_ppp_mtu"
94
95 save_setting network wan_ifname "ppp0"
96
97 case "$FORM_ppp_redial" in
98 demand)
99 save_setting network ppp_demand 1
100 ;;
101 persist)
102 save_setting network ppp_demand ""
103 ;;
104 esac
105 ;;
106 *)
107 wan_ifname=${wan_ifname:-$(nvram get wan_ifname)}
108 [ -z "$wan_ifname" -o "${wan_ifname%%[0-9]*}" = "ppp" ] && {
109 wan_device=${wan_device:-$(nvram get wan_device)}
110 wan_device=${wan_device:-vlan1}
111 save_setting network wan_ifname "$wan_device"
112 }
113 ;;
114 esac
115 }
116 fi
117
118 # detect pptp package and compile option
119 [ -x /sbin/ifup.pptp ] && {
120 PPTP_OPTION="option|pptp|PPTP"
121 PPTP_SERVER_OPTION="field|PPTP Server IP|pptp_server|hidden
122 text|pptp_server_ip|$FORM_pptp_server_ip"
123 }
124 [ -x /sbin/ifup.pppoe ] && {
125 PPPOE_OPTION="option|pppoe|PPPoE"
126 }
127
128
129 header "Network" "WAN" "@TR<<WAN Configuration>>" ' onLoad="modechange()" ' "$SCRIPT_NAME"
130
131 cat <<EOF
132 <script type="text/javascript" src="/webif.js "></script>
133 <script type="text/javascript">
134 <!--
135 function modechange()
136 {
137 var v;
138 v = (isset('wan_proto', 'pppoe') || isset('wan_proto', 'pptp'));
139 set_visible('ppp_settings', v);
140 set_visible('username', v);
141 set_visible('passwd', v);
142 set_visible('redial', v);
143 set_visible('mtu', v);
144 set_visible('demand_idletime', v && isset('ppp_redial', 'demand'));
145 set_visible('persist_redialperiod', v && !isset('ppp_redial', 'demand'));
146
147 v = (isset('wan_proto', 'static') || isset('wan_proto', 'pptp') || isset('wan_proto', 'dhcp'));
148 set_visible('ip_settings', v);
149 set_visible('ipaddr', v);
150 set_visible('netmask', v);
151
152 v = isset('wan_proto', 'static');
153 set_visible('gateway', v);
154 set_visible('dns', v);
155
156 v = isset('wan_proto', 'pptp');
157 set_visible('pptp_server',v);
158
159 hide('save');
160 show('save');
161 }
162 -->
163 </script>
164 EOF
165
166 display_form <<EOF
167 onchange|modechange
168 start_form|@TR<<WAN Configuration>>
169 field|@TR<<Connection Type>>
170 select|wan_proto|$FORM_wan_proto
171 option|none|@TR<<No WAN#None>>
172 option|dhcp|@TR<<DHCP>>
173 option|static|@TR<<Static IP>>
174 $PPPOE_OPTION
175 $PPTP_OPTION
176 helplink|http://wiki.openwrt.org/OpenWrtDocs/Configuration#head-b62c144b9886b221e0c4b870edb0dd23a7b6acab
177 end_form
178 start_form|@TR<<IP Settings>>|ip_settings|hidden
179 field|@TR<<IP Address>>|ipaddr|hidden
180 text|wan_ipaddr|$FORM_wan_ipaddr
181 field|@TR<<Netmask>>|netmask|hidden
182 text|wan_netmask|$FORM_wan_netmask
183 field|@TR<<Default Gateway>>|gateway|hidden
184 text|wan_gateway|$FORM_wan_gateway
185 $PPTP_SERVER_OPTION
186 helpitem|IP Settings
187 helptext|Helptext IP Settings#IP Settings are optional for DHCP and PPTP. If you set them, they are used as defaults in case the DHCP server is unavailable.
188 end_form
189 start_form|@TR<<DNS Servers>>|dns|hidden
190 listedit|dns|$SCRIPT_NAME?wan_proto=static&|$FORM_dns|$FORM_dnsadd
191 helpitem|Note
192 helptext|Helptext DNS save#You should save your settings on this page before adding/removing DNS servers
193 end_form
194
195 start_form|@TR<<PPP Settings>>|ppp_settings|hidden
196 field|@TR<<Redial Policy>>|redial|hidden
197 select|ppp_redial|$FORM_ppp_redial
198 option|demand|@TR<<Connect on Demand>>
199 option|persist|@TR<<Keep Alive>>
200 field|@TR<<Maximum Idle Time>>|demand_idletime|hidden
201 text|ppp_idletime|$FORM_ppp_idletime
202 helpitem|Maximum Idle Time
203 helptext|Helptext Idle Time#The number of seconds without internet traffic that the router should wait before disconnecting from the Internet (Connect on Demand only)
204 field|@TR<<Redial Timeout>>|persist_redialperiod|hidden
205 text|ppp_redialperiod|$FORM_ppp_redialperiod
206 helpitem|Redial Timeout
207 helptext|Helptext Redial Timeout#The number of seconds to wait after receiving no response from the provider before trying to reconnect
208 field|@TR<<Username>>|username|hidden
209 text|ppp_username|$FORM_ppp_username
210 field|@TR<<Password>>|passwd|hidden
211 password|ppp_passwd|$FORM_ppp_passwd
212 field|@TR<<MTU>>|mtu|hidden
213 text|ppp_mtu|$FORM_ppp_mtu
214 end_form
215 EOF
216
217 footer ?>
218 <!--
219 ##WEBIF:name:Network:150:WAN
220 -->