add pppoe fix from whiterussian
[openwrt-10.03/.git] / package / ppp / files / ifup.pppoe
index caf06f76ca670bdf6a39c4bc971f6e40b95c7bfb..2bec9c6fe09bb29cea99a6551fa86ece58afaade 100644 (file)
@@ -1,29 +1,42 @@
 #!/bin/sh
+[ $# = 0 ] && { echo "  $0 <group>"; exit; }
 . /etc/functions.sh
-IF_NAME=$1
+. /etc/nvram.overrides
+[ -e /etc/config/network ] && . /etc/config/network
+type=$1
 
-PROTO=$(nvram get ${IF_NAME}_proto)
-[ "$PROTO" = "pppoe" ] || exit 0
+[ "$(nvram get ${type}_proto)" = "pppoe" ] || {
+       echo "$0: ${type}_proto isn't pppoe"
+       exit
+}
 
 for module in slhc ppp_generic pppox pppoe; do
-       /sbin/insmod $module 2>/dev/null >/dev/null
+       /sbin/insmod $module 2>&- >&-
 done
 
-(
-       while true; 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}
-               MTUV=$(nvram get ppp_mtu)
-               MTU=${MTUV:+mtu $MTUV}
-               MRU=${MTUV:+mru $MTUV}
+while :; do
+       IFNAME=nic-$(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}
+       MTU=${MTU:+ mtu $MTU mru $MTU}
 
-               ifconfig $IFNAME up
-               echo -e "plugin rp-pppoe.so\nconnect /bin/true\nusepeerdns\ndefaultroute\nuser \"$USERNAME\"\npassword \"$PASSWORD\"\n$MTU\n$MRU\n$IDLETIME\n$REDIAL" > /tmp/.pppoe-data
-               /usr/sbin/pppd nodetach file /tmp/.pppoe-data $IFNAME
-       done
-) &
+       ifconfig $IFNAME up
+       /usr/sbin/pppd nodetach \
+               plugin rp-pppoe.so \
+               connect /bin/true \
+               usepeerdns \
+               defaultroute \
+               linkname $type \
+               user "$USERNAME" \
+               password "$PASSWORD" \
+               $MTU \
+               $IDLETIME \
+               $REDIAL \
+               $IFNAME
+done &