X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/1b8fffcf7c485d863315ebe9e7ec321eb92b5c74..850e300663be07940f023db0a56d86d444ca12c1:/openwrt/package/ppp/files/ifup.pppoe

diff --git a/openwrt/package/ppp/files/ifup.pppoe b/openwrt/package/ppp/files/ifup.pppoe
index a30dd2a9d..36bbe3029 100644
--- a/openwrt/package/ppp/files/ifup.pppoe
+++ b/openwrt/package/ppp/files/ifup.pppoe
@@ -15,30 +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 \
-  	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 &