summaryrefslogtreecommitdiffstats
path: root/openwrt/package/ppp/files/ifup.pppoe
diff options
context:
space:
mode:
Diffstat (limited to 'openwrt/package/ppp/files/ifup.pppoe')
-rw-r--r--openwrt/package/ppp/files/ifup.pppoe58
1 files changed, 32 insertions, 26 deletions
diff --git a/openwrt/package/ppp/files/ifup.pppoe b/openwrt/package/ppp/files/ifup.pppoe
index da9a441ad..36bbe3029 100644
--- a/openwrt/package/ppp/files/ifup.pppoe
+++ b/openwrt/package/ppp/files/ifup.pppoe
@@ -15,31 +15,37 @@ for module in slhc ppp_generic pppox pppoe; do
done
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}
- MTU=$(nvram get ppp_mtu)
- MTU=${MTU:-1492}
+ IFNAME=$(nvram get pppoe_ifname)
+ 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:-1492}
- ifconfig $IFNAME up
- /usr/sbin/pppd nodetach \
- plugin rp-pppoe.so \
- connect /bin/true \
- usepeerdns \
- defaultroute \
- linkname $type \
- ipparam $type \
- user "$USERNAME" \
- password "$PASSWORD" \
- mtu $MTU mru $MTU \
- $IDLETIME \
- $REDIAL \
- nic-$IFNAME
-
- # Read settings again (might have changed)
- [ -e /etc/config/network ] && . /etc/config/network
+ ifconfig $IFNAME up
+ /usr/sbin/pppd nodetach \
+ plugin rp-pppoe.so \
+ connect /bin/true \
+ usepeerdns \
+ defaultroute \
+ linkname $type \
+ ipparam $type \
+ user "$USERNAME" \
+ password "$PASSWORD" \
+ mtu $MTU mru $MTU \
+ $DEMAND \
+ $KEEPALIVE \
+ nic-$IFNAME
+
+ # Read settings again (might have changed)
+ [ -e /etc/config/network ] && . /etc/config/network
done &