Update OpenVPN webif module and fix management feature in Makefile. Closes #625
[openwrt/svn-archive/archive.git] / openwrt / package / openvpn / files / openvpn.sh
1 #!/usr/bin/webif-page "-U /tmp -u 4096"
2 <?
3 # add haserl args in double quotes it has very ugly
4 # command line parsing code!
5
6 . /usr/lib/webif/webif.sh
7 load_settings "openvpn"
8
9 openvpn_cli_pkcs12pass=${openvpn_cli_pkcs12pass:-$(nvram get openvpn_cli_pkcs12pass)}
10 openvpn_cli_pkcs12pass=${openvpn_cli_pkcs12pass:+"-@@-"}
11
12 if empty "$FORM_submit"; then
13 [ -f /etc/openvpn/certificate.p12 ] ||
14 NOCERT=1
15 [ -f /etc/openvpn/shared.key ] ||
16 NOPSK=1
17 FORM_openvpn_cli=${openvpn_cli:-$(nvram get openvpn_cli)}
18 FORM_openvpn_cli_server=${openvpn_cli_server:-$(nvram get openvpn_cli_server)}
19 FORM_openvpn_cli_proto=${openvpn_cli_proto:-$(nvram get openvpn_cli_proto)}
20 FORM_openvpn_cli_port=${openvpn_cli_port:-$(nvram get openvpn_cli_port)}
21 FORM_openvpn_cli_port=${FORM_openvpn_cli_port:-1194}
22 FORM_openvpn_cli_auth=${openvpn_cli_auth:-$(nvram get openvpn_cli_auth)}
23 FORM_openvpn_cli_auth=${FORM_openvpn_cli_auth:-cert)}
24 FORM_openvpn_cli_psk=${openvpn_cli_psk:-$(nvram get openvpn_cli_psk)}
25 else
26 [ -d /etc/openvpn ] || mkdir /etc/openvpn
27 [ -f "$FORM_openvpn_cli_pkcs12file" ] && {
28 cp "$FORM_openvpn_cli_pkcs12file" /etc/openvpn/certificate.p12 &&
29 UPLOAD_CERT=1
30 }
31 [ -f "$FORM_openvpn_cli_pskfile" ] && {
32 cp "$FORM_openvpn_cli_pskfile" /etc/openvpn/shared.key &&
33 UPLOAD_PSK=1
34 }
35 [ "$FORM_openvpn_cli_pkcs12pass" != "-@@-" ] && {
36 [ "$FORM_openvpn_cli_pkcs12pass" != "$openvpn_cli_pkcs12pass" ] && {
37 save_setting openvpn openvpn_cli_pkcs12pass $FORM_openvpn_cli_pkcs12pass
38 openvpn_cli_pkcs12pass=${FORM_openvpn_cli_pkcs12pass:+"-@@-"}
39 }
40 }
41
42 save_setting openvpn openvpn_cli $FORM_openvpn_cli
43 save_setting openvpn openvpn_cli_server $FORM_openvpn_cli_server
44 save_setting openvpn openvpn_cli_proto $FORM_openvpn_cli_proto
45 save_setting openvpn openvpn_cli_port $FORM_openvpn_cli_port
46 save_setting openvpn openvpn_cli_auth $FORM_openvpn_cli_auth
47 save_setting openvpn openvpn_cli_psk $FORM_openvpn_cli_psk
48 fi
49
50 header "VPN" "OpenVPN" "@TR<<OpenVPN>>" ' onLoad="modechange()" ' "$SCRIPT_NAME"
51
52 cat <<EOF
53 <script type="text/javascript" src="/webif.js "></script>
54 <script type="text/javascript">
55 <!--
56 function modechange()
57 {
58 var v;
59 v = isset('openvpn_cli', '1');
60 set_visible('connection_settings', v);
61 set_visible('authentication', v);
62
63 v = isset('openvpn_cli_auth', 'psk');
64 set_visible('psk_status', v);
65 set_visible('psk', v);
66
67 v = isset('openvpn_cli_auth', 'cert');
68 set_visible('certificate_status', v);
69 set_visible('certificate', v);
70 set_visible('pkcs12pass', v);
71
72 hide('save');
73 show('save');
74 }
75 -->
76 </script>
77 EOF
78
79 display_form <<EOF
80 onchange|modechange
81 start_form|@TR<<OpenVPN>>
82 field|@TR<<Start VPN Connection>>
83 select|openvpn_cli|$FORM_openvpn_cli
84 option|0|@TR<<Disabled>>
85 option|1|@TR<<Enabled>>
86 onchange|
87 end_form
88
89 start_form|@TR<<Connection Settings>>|connection_settings|hidden
90 field|@TR<<Server Address>>
91 text|openvpn_cli_server|$FORM_openvpn_cli_server
92 field|@TR<<Protocol>>
93 select|openvpn_cli_proto|$FORM_openvpn_cli_proto
94 option|udp|UDP
95 option|tcp|TCP
96 field|@TR<<Server Port (default: 1194)>>
97 text|openvpn_cli_port|$FORM_openvpn_cli_port
98 field|@TR<<Authentication Method>>
99 onchange|modechange
100 select|openvpn_cli_auth|$FORM_openvpn_cli_auth
101 option|psk|@TR<<Preshared Key>>
102 option|cert|@TR<<Certificate (PKCS12)>>
103 onchange|
104 end_form
105
106 start_form|@TR<<Authentication>>|authentication|hidden
107 field|@TR<<Preshared Key Status>>|psk_status|hidden
108 $(empty "$NOPSK" || echo 'string|<span style="color:red">@TR<<No Keyfile uploaded yet!>></span>')
109 $(empty "$UPLOAD_PSK" || echo 'string|<span style="color:green">@TR<<Upload Successful>><br/></span>')
110 $(empty "$NOPSK" && echo 'string|@TR<<Found Installed Keyfile>>')
111 field|@TR<<Upload Preshared Key>>|psk|hidden
112 upload|openvpn_cli_pskfile
113
114 field|@TR<<Certificate Status>>|certificate_status|hidden
115 $(empty "$NOCERT" || echo 'string|<span style="color:red">@TR<<No Certificate uploaded yet!>></span>')
116 $(empty "$UPLOAD_CERT" || echo 'string|<span style="color:green">@TR<<Upload Successful>><br/></span>')
117 $(empty "$NOCERT" && echo 'string|@TR<<Found Installed Certificate.>>')
118 field|@TR<<Upload PKCS12 Certificate>>|certificate|hidden
119 upload|openvpn_cli_pkcs12file
120 field|@TR<<PKCS12 Container Password>>|pkcs12pass|hidden
121 password|openvpn_cli_pkcs12pass|$openvpn_cli_pkcs12pass
122 end_form
123
124 EOF
125
126 footer
127 ?>
128 <!--
129 ##WEBIF:name:VPN:1:OpenVPN
130 -->