summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/ppp/Makefile3
-rw-r--r--package/ppp/control/ppp-pppoe-plugin.control2
-rwxr-xr-xpackage/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe23
-rwxr-xr-xtarget/default/target_skeleton/sbin/ifup7
4 files changed, 31 insertions, 4 deletions
diff --git a/package/ppp/Makefile b/package/ppp/Makefile
index f929f00f7..dd1dbd220 100644
--- a/package/ppp/Makefile
+++ b/package/ppp/Makefile
@@ -95,6 +95,8 @@ $(PKG_PPP): $(PKG_BUILD_DIR)/pppd/pppd
mkdir -p $(I_PPP)
cp -af ./ipkg/ppp/* $(I_PPP)
$(SCRIPT_DIR)/make-ipkg-dir.sh $(I_PPP) control/ppp.control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
+ mkdir -p $(I_PPP)/etc/ppp
+ ln -s /tmp/resolv.conf $(I_PPP)/etc/ppp/resolv.conf
mkdir -p $(I_PPP)/usr/sbin
cp -af $(PKG_BUILD_DIR)/pppd/pppd $(I_PPP)/usr/sbin/
$(STRIP) $(I_PPP)/usr/sbin/*
@@ -113,6 +115,7 @@ $(IPKG_STATE_DIR)/info/ppp.list: $(PKG_PPP)
$(PKG_PPP_PPPOE_PLUGIN): $(PKG_PPP)
$(SCRIPT_DIR)/make-ipkg-dir.sh $(I_PPP_PPPOE_PLUGIN) control/ppp-pppoe-plugin.control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
+ cp -af ./ipkg/ppp-pppoe-plugin/* $(I_PPP_PPPOE_PLUGIN)
mkdir -p $(I_PPP_PPPOE_PLUGIN)/usr/lib/pppd/rp-pppoe
cp -af $(PKG_BUILD_DIR)/pppd/plugins/rp-pppoe/rp-pppoe.so \
$(I_PPP_PPPOE_PLUGIN)/usr/lib/pppd/rp-pppoe
diff --git a/package/ppp/control/ppp-pppoe-plugin.control b/package/ppp/control/ppp-pppoe-plugin.control
index 33e6a3219..8bbd8610f 100644
--- a/package/ppp/control/ppp-pppoe-plugin.control
+++ b/package/ppp/control/ppp-pppoe-plugin.control
@@ -6,4 +6,4 @@ Architecture: mipsel
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: a PPPoE (PPP over Ethernet) plugin for PPP
-Depends: ppp
+Depends: ppp, kmod-pppoe
diff --git a/package/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe b/package/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe
new file mode 100755
index 000000000..52e1d79c4
--- /dev/null
+++ b/package/ppp/ipkg/ppp-pppoe-plugin/etc/init.d/S50pppoe
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+. /etc/functions.sh
+
+WAN_PROTO=$(nvram get wan_proto)
+[ "$WAN_PROTO" = "pppoe" ] || exit 0
+
+for module in slhc ppp_generic pppox pppoe; do
+ insmod $module 2>/dev/null >/dev/null
+done
+
+IFNAME=$(nvram get pppoe_ifname)
+USERNAME=$(nvram get ppp_username)
+PASSWORD=$(nvram get ppp_passwd)
+REDIAL=$(nvram get ppp_redialperiod)
+REDIAL=${REDIAL:+holdoff $REDIAL}
+IDLETIME=$(nvram get ppp_idletime)
+IDLETIME=${IDLETIME:+idle $IDLETIME}
+MTU=$(nvram get ppp_mtu)
+
+ifconfig $IFNAME up
+echo -e "plugin /usr/lib/pppd/rp-pppoe/rp-pppoe.so\nconnect /bin/true\nusepeerdns\ndefaultroute\nuser \"$USERNAME\"\npassword \"$PASSWORD\"\nmtu $MTU\n$IDLETIME\n$REDIAL" > /tmp/.pppoe-data
+/usr/sbin/pppd file /tmp/.pppoe-data $IFNAME
diff --git a/target/default/target_skeleton/sbin/ifup b/target/default/target_skeleton/sbin/ifup
index 6b4a7740b..f8e41ce8c 100755
--- a/target/default/target_skeleton/sbin/ifup
+++ b/target/default/target_skeleton/sbin/ifup
@@ -58,10 +58,11 @@
idletime=$(nvram get ppp_idletime)
mtu=$(nvram get wan_mtu)
- $DEBUG ifconfig $if 0.0.0.0 up
+# handled by /etc/init.d/S50pppoe
+# $DEBUG ifconfig $if 0.0.0.0 up
- $DEBUG /sbin/pppoecd $if -u $username -p $password \
- -i 0 -I $redial -T $idletime -t $mtu -k
+# $DEBUG /sbin/pppoecd $if -u $username -p $password \
+# -i 0 -I $redial -T $idletime -t $mtu -k
;;
none)
;;