large init script cleanup and merge of whiterussian changes, new dnsmasq config handling
[openwrt.git] / package / ppp / files / ifup.pppoe
index caf06f7..0f3c14e 100644 (file)
@@ -1,29 +1,41 @@
 #!/bin/sh
-. /etc/functions.sh
-IF_NAME=$1
+[ $# = 0 ] && { echo "  $0 <group>"; exit; }
+. /etc/config/network
+type=$1
 
-PROTO=$(nvram get ${IF_NAME}_proto)
-[ "$PROTO" = "pppoe" ] || exit 0
+eval "proto=\"\${${type}_proto}\""
+[ "$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}
+eval "IFNAME=\"\${${type}_device}\""
+KEEPALIVE=${ppp_redialperiod:+lcp-echo-interval $ppp_redialperiod lcp-echo-failure 5}
+case "$ppp_demand" in
+       on|1|enabled)
+               DEMAND=${ppp_idletime:+demand idle $ppp_idletime}
+               [ -f /etc/ppp/filter ] && DEMAND=${DEMAND:+precompiled-active-filter /etc/ppp/filter $DEMAND}
+       ;;
+       *) DEMAND="persist";;
+esac
+MTU=${ppp_mtu:-1492}
+
+ifconfig $IFNAME up
+/usr/sbin/pppd \
+       plugin rp-pppoe.so \
+       connect /bin/true \
+       usepeerdns \
+       defaultroute \
+       linkname $type \
+       ipparam $type \
+       user "$ppp_username" \
+       password "$ppp_passwd" \
+       mtu $MTU mru $MTU \
+       $DEMAND \
+       $KEEPALIVE \
+       nic-$IFNAME
 
-               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
-) &
This page took 0.022716 seconds and 4 git commands to generate.