add lcp ping to ppp ifup script so that it timeouts properly (fixes #42)
[openwrt.git] / package / ppp / files / ifup.pppoa
index 51b0fe3344424e0270d882c74a95dc4b922061ec..5f42a39d08e5d6f8ff5f0d58c8a7ad0c9965b0bd 100644 (file)
@@ -15,28 +15,35 @@ for module in slhc ppp_generic pppoatm; do
 done
 
 while :; do
-  VPI=$(nvram get atm_vpi)
-  VCI=$(nvram get atm_vci)
-  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:-1500}
+       VPI=$(nvram get atm_vpi)
+       VCI=$(nvram get atm_vci)
+       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="";;
+       esac
+       MTU=$(nvram get ppp_mtu)
+       MTU=${MTU:-1500}
 
-  /usr/sbin/pppd nodetach \
+       /usr/sbin/pppd nodetach \
        plugin pppoatm.so ${VPI:-8}.${VCI:-35} \
-       usepeerdns \
-       defaultroute \
-       linkname $type \
-       user "$USERNAME" \
-       password "$PASSWORD" \
-       mtu $MTU mru $MTU \
-       $IDLETIME \
-       $REDIAL
-  
-  # Read settings again (might have changed)
-  [ -e /etc/config/network ] && . /etc/config/network
+               usepeerdns \
+               defaultroute \
+               linkname $type \
+               ipparam $type \
+               user "$USERNAME" \
+               password "$PASSWORD" \
+               mtu $MTU mru $MTU \
+               $DEMAND \
+               $KEEPALIVE
+       
+       # Read settings again (might have changed)
+       [ -e /etc/config/network ] && . /etc/config/network
 done &