[package] /etc/functions.sh => /lib/functions.sh
[openwrt.git] / package / pptp / files / pptp.sh
1 #!/bin/sh
2
3 . /lib/functions.sh
4 . ../netifd-proto.sh
5 init_proto "$@"
6
7 INCLUDE_ONLY=1
8 . ./ppp.sh
9
10 proto_pptp_init_config() {
11         ppp_generic_init_config
12         proto_config_add_string "server"
13         proto_config_add_boolean "buffering"
14         available=1
15         no_device=1
16 }
17
18 proto_pptp_setup() {
19         local config="$1"
20         local iface="$2"
21         local load
22
23         json_get_vars server buffering
24
25         serv_addr=
26         for ip in $(resolveip -t 5 "$server"); do
27                 ( proto_add_host_dependency "$config" "$server" )
28                 serv_addr=1
29         done
30         [ -n "$serv_addr" ] || {
31                 echo "Could not resolve server address"
32                 sleep 5
33                 proto_setup_failed "$config"
34                 exit 1
35         }
36
37         [ "${buffering:-1}" == 0 ] && buffering="--nobuffer" || buffering=
38
39         for module in slhc ppp_generic ppp_async ip_gre; do
40                 grep -q "$module" /proc/modules && continue
41                 /sbin/insmod $module 2>&- >&-
42                 load=1
43         done
44         [ "$load" = "1" ] && sleep 1
45
46         ppp_generic_setup "$config" \
47                 pty "/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd $buffering" \
48                 file /etc/ppp/options.pptp
49 }
50
51 proto_pptp_teardown() {
52         ppp_generic_teardown "$@"
53 }
54
55 add_protocol pptp