add lcp ping to ppp ifup script so that it timeouts properly (fixes #42)
[openwrt.git] / package / ppp / files / ifup.pppoe
index 94179a3eaa473d2e4034d1561301349779b9c8e5..36bbe30299503d57d607e7a68e7cbc7f24aea709 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/sh
 [ $# = 0 ] && { echo "  $0 <group>"; exit; }
 . /etc/functions.sh
-. /etc/nvram.overrides
+. /etc/network.overrides
 [ -e /etc/config/network ] && . /etc/config/network
 type=$1
 
@@ -18,12 +18,18 @@ while :; do
        IFNAME=$(nvram get pppoe_ifname)
        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}
+       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="";;
+       esac
        MTU=$(nvram get ppp_mtu)
-       MTU=${MTU:+ mtu $MTU mru $MTU}
+       MTU=${MTU:-1492}
 
        ifconfig $IFNAME up
        /usr/sbin/pppd nodetach \
@@ -32,10 +38,14 @@ while :; do
                usepeerdns \
                defaultroute \
                linkname $type \
+               ipparam $type \
                user "$USERNAME" \
                password "$PASSWORD" \
-               $MTU \
-               $IDLETIME \
-               $REDIAL \
-               $IFNAME
+               mtu $MTU mru $MTU \
+               $DEMAND \
+               $KEEPALIVE \
+               nic-$IFNAME
+       
+       # Read settings again (might have changed)
+       [ -e /etc/config/network ] && . /etc/config/network
 done &