summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/pptp/Makefile4
-rw-r--r--package/pptp/files/ifup.pptp43
-rw-r--r--package/pptp/files/options.pptp6
-rw-r--r--package/pptp/files/pptp.init18
4 files changed, 45 insertions, 26 deletions
diff --git a/package/pptp/Makefile b/package/pptp/Makefile
index 6c9f5150d9..94ac61cde5 100644
--- a/package/pptp/Makefile
+++ b/package/pptp/Makefile
@@ -28,8 +28,8 @@ $(PKG_BUILD_DIR)/.built:
touch $@
$(IPKG_PPTP):
- install -d -m0755 $(IDIR_PPTP)/etc/init.d
- install -m0755 ./files/pptp.init $(IDIR_PPTP)/etc/init.d/S50pptp
+ install -d -m0755 $(IDIR_PPTP)/sbin
+ install -m0755 ./files/ifup.pptp $(IDIR_PPTP)/sbin/ifup.pptp
install -d -m0755 $(IDIR_PPTP)/etc/ppp
install -m0644 ./files/options.pptp $(IDIR_PPTP)/etc/ppp/
install -d -m0755 $(IDIR_PPTP)/usr/sbin
diff --git a/package/pptp/files/ifup.pptp b/package/pptp/files/ifup.pptp
new file mode 100644
index 0000000000..21a574acb7
--- /dev/null
+++ b/package/pptp/files/ifup.pptp
@@ -0,0 +1,43 @@
+#!/bin/sh
+. /etc/functions.sh
+type=$1
+
+[ "$(nvram get ${type}_proto)" = "pptp" ] || exit
+
+[ -d "/var/lock" ] || mkdir -p /var/lock || exit 1
+
+for module in slhc ppp_generic ppp_async ip_gre; do
+ /sbin/insmod $module 2>&- >&-
+done
+
+if=$(nvram get pptp_ifname)
+ip=$(nvram get ${type}_ipaddr)
+netmask=$(nvram get ${type}_netmask)
+[ -z "$ip" -o -z "$if" ] || ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
+
+while :; do
+ IP=$(nvram get pptp_server_ip)
+ USERNAME=$(nvram get ppp_username)
+ PASSWORD=$(nvram get ppp_passwd)
+ REDIAL=$(nvram get ppp_redialperiod)
+ REDIAL=${REDIAL:+lcp-echo-interval $REDIAL}
+ IDLETIME=$(nvram get ppp_idletime)
+ IDLETIME=${IDLETIME:+lcp-echo-failure $IDLETIME}
+ MTU=$(nvram get ppp_mtu)
+ MTU=${MTU:+ mtu $MTU mru $MTU}
+
+ /usr/sbin/pppd nodetach \
+ pty "/usr/sbin/pptp $IP --loglevel 0 --nolaunchpppd" \
+ file /etc/ppp/options.pptp \
+ connect /bin/true \
+ usepeerdns \
+ defaultroute \
+ linkname $type \
+ user "$USERNAME" \
+ password "$PASSWORD" \
+ $MTU \
+ $IDLETIME \
+ $REDIAL \
+ $IFNAME
+done &
+
diff --git a/package/pptp/files/options.pptp b/package/pptp/files/options.pptp
index 0eb1e87e83..c520de74b7 100644
--- a/package/pptp/files/options.pptp
+++ b/package/pptp/files/options.pptp
@@ -2,11 +2,5 @@ lock
noauth
nobsdcomp
nodeflate
-mtu 1490
-mru 1490
-lcp-echo-failure 5
-lcp-echo-interval 120
idle 0
defaultroute
-name xxxx
-remotename xxxx
diff --git a/package/pptp/files/pptp.init b/package/pptp/files/pptp.init
deleted file mode 100644
index 34ff8a63b5..0000000000
--- a/package/pptp/files/pptp.init
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-. /etc/functions.sh
-
-WAN_PROTO=$(nvram get wan_proto)
-[ "$WAN_PROTO" = "pptp" ] || exit 0
-
-for module in ip_gre slhc ppp_generic ppp_async ppp_deflate ; do
- /sbin/insmod $module 2>/dev/null >/dev/null
-done
-
-if test -d "/var/lock"; then
- mkdir -p /var/lock || exit 1
-fi
-
-/usr/sbin/pppd pty "pptp x.x.x.x --loglevel 0 --nolaunchpppd" file /etc/ppp/options.pptp
-
-