X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/651212067733fbe278ea227f84b5180fd0deded9..45c7419a4f7a4436c27ffd62b1a05724c4ce6357:/openwrt/package/ppp/files/ifup.pppoe diff --git a/openwrt/package/ppp/files/ifup.pppoe b/openwrt/package/ppp/files/ifup.pppoe index caf06f76c..0f3c14ed0 100644 --- a/openwrt/package/ppp/files/ifup.pppoe +++ b/openwrt/package/ppp/files/ifup.pppoe @@ -1,29 +1,41 @@ #!/bin/sh -. /etc/functions.sh -IF_NAME=$1 +[ $# = 0 ] && { echo " $0 "; 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 -) &