06e29ce5a1f2580ed00e5e0b626cdb90097ec955
[openwrt/svn-archive/archive.git] / openwrt / package / openvpn / files / S50openvpn
1 #!/bin/sh
2
3 case "$(nvram get openvpn_cli)" in
4 on|enabled|1)
5 continue
6 ;;
7 off|disabled|0)
8 exit 0
9 ;;
10 esac
11
12 case "$1" in
13 start)
14 SERVER=$(nvram get openvpn_cli_server)
15 PROTO=$(nvram get openvpn_cli_proto)
16 PORT=$(nvram get openvpn_cli_port)
17
18 [ "$SERVER" ] || {
19 logger "$0: remote server not configured!"
20 exit
21 }
22 case "$(nvram get openvpn_cli_auth)" in
23 cert)
24 AUTH_OPTION="--pkcs12"
25 AUTH_FILE="/etc/openvpn/certificate.p12"
26 ;;
27 psk)
28 AUTH_OPTION="--secret"
29 AUTH_FILE="/etc/openvpn/shared.key"
30 ;;
31 *)
32 logger "$0: unknown authentication type, aborting!"
33 exit
34 ;;
35 esac
36 [ -f "$AUTH_FILE" ] || {
37 logger "$0: no certificat/keyfile found!"
38 exit
39 }
40 openvpn --client \
41 --proto "${PROTO:-udp}" \
42 --port "${PORT:-1194}" \
43 --remote "$SERVER" \
44 --dev tun \
45 --nobind \
46 $AUTH_OPTION "$AUTH_FILE" \
47 --comp-lzo \
48 --daemon \
49 --status /tmp/openvpn-status.log \
50 --verb 3
51 ;;
52 restart)
53 $0 stop
54 sleep 3
55 $0 start
56 ;;
57 reload)
58 killall -SIGHUP openvpn
59 ;;
60 stop)
61 killall openvpn
62 ;;
63 esac