[package] /etc/functions.sh => /lib/functions.sh
[openwrt/svn-archive/archive.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