347df346c0f2b63932bf45147a80fe27926729aa
[openwrt/svn-archive/archive.git] / package / pptp / files / pptp.sh
1 #!/bin/sh
2
3 . /etc/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_var server server
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 json_get_var buffering buffering
38 [ "${buffering:-1}" == 0 ] && buffering="--nobuffer" || buffering=
39
40 for module in slhc ppp_generic ppp_async ip_gre; do
41 grep -q "$module" /proc/modules && continue
42 /sbin/insmod $module 2>&- >&-
43 load=1
44 done
45 [ "$load" = "1" ] && sleep 1
46
47 ppp_generic_setup "$config" \
48 pty "/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd $buffering" \
49 file /etc/ppp/options.pptp
50 }
51
52 proto_pptp_teardown() {
53 ppp_generic_teardown "$@"
54 }
55
56 add_protocol pptp