X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/bb8d5928d39a15f6337b653621e2a8c625e10d1a..0d3626fc75efabe6c4ae098b0988dfeadc31447b:/package/pptp/files/ifup.pptp?ds=inline diff --git a/package/pptp/files/ifup.pptp b/package/pptp/files/ifup.pptp index 21a574acb..c8a1a5eee 100644 --- a/package/pptp/files/ifup.pptp +++ b/package/pptp/files/ifup.pptp @@ -10,34 +10,44 @@ 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 & +PPTP_PROTO="$(nvram get pptp_proto)" +[ "$PPTP_PROTO" = "static" ] || PPTP_PROTO="" +PPTP_PROTO="${PPTP_PROTO:-dhcp}" +IP=$(nvram get pptp_server_ip) +USERNAME=$(nvram get ppp_username) +PASSWORD=$(nvram get ppp_passwd) +KEEPALIVE=$(nvram get ppp_redialperiod) +KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE} +DEMAND=$(nvram get ppp_demand) +case "$DEMAND" in + on|1|enabled) + DEMAND=$(nvram get ppp_idletime) + DEMAND=${IDLETIME:+demand idle $IDLETIME} + ;; + *) DEMAND="persist";; +esac +MTU=$(nvram get ppp_mtu) +MTU=${MTU:-1452} + +do_ifup $PPTP_PROTO $type + +# hack for some buggy ISPs +NETMASK=$(nvram get ${type}_netmask) +IFNAME=$(nvram get pptp_ifname) +[ -z "$NETMASK" -o -z "$IFNAME" ] || ifconfig $IFNAME netmask $NETMASK + +/usr/sbin/pppd \ + pty "/usr/sbin/pptp $IP --loglevel 0 --nolaunchpppd" \ + file /etc/ppp/options.pptp \ + connect /bin/true \ + usepeerdns \ + defaultroute \ + replacedefaultroute \ + linkname "$type" \ + ipparam "$type" \ + user "$USERNAME" \ + password "$PASSWORD" \ + mtu $MTU mru $MTU \ + $DEMAND \ + $KEEPALIVE