2 ip route get
$1 |
sed -e 's/ /\n/g' | \
3 sed -ne '1p;/via/{N;p};/dev/{N;p};/src/{N;p};/mtu/{N;p}'
7 config_set
"$1" device
"pptp-$1"
10 stop_interface_pptp
() {
11 stop_interface_ppp
"$1"
12 for ip
in $
(uci_get_state network
"$1" serv_addrs
); do
13 ip route del
"$ip" 2>/dev
/null
17 coldplug_interface_pptp
() {
18 setup_interface_pptp
"pptp-$1" "$1"
21 setup_interface_pptp
() {
26 config_get device
"$config" device
29 config_get server
"$config" server
32 config_get_bool buffering
"$config" buffering
1
33 [ "$buffering" == 0 ] && buffering
="--nobuffer" || buffering
=
35 for module
in slhc ppp_generic ppp_async ip_gre
; do
36 /sbin
/insmod
$module 2>&- >&-
41 for ip
in $
(resolveip
-t 3 "${server}"); do
42 append serv_addrs
"$ip"
43 ip route replace $
(find_route
$ip)
45 uci_toggle_state network
"$config" serv_addrs
"$serv_addrs"
49 config_get netmask
"$config" netmask
50 [ -z "$netmask" -o -z "$device" ] || ifconfig
$device netmask
$netmask
52 config_get mtu
"$config" mtu
54 start_pppd
"$config" \
55 pty
"/usr/sbin/pptp $server --loglevel 0 --nolaunchpppd $buffering" \
56 file /etc
/ppp
/options.pptp \