aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/ppp/Makefile2
-rw-r--r--package/ppp/files/etc/hotplug.d/atm/20-usb-modem25
2 files changed, 27 insertions, 0 deletions
diff --git a/package/ppp/Makefile b/package/ppp/Makefile
index 90e4590efe..222c85deae 100644
--- a/package/ppp/Makefile
+++ b/package/ppp/Makefile
@@ -149,6 +149,8 @@ define Package/ppp-mod-pppoa/install
$(1)/usr/lib/pppd/$(PKG_VERSION)/
$(INSTALL_DIR) $(1)/lib/network
$(INSTALL_BIN) ./files/pppoa.sh $(1)/lib/network/
+ $(INSTALL_DIR) $(1)/etc/hotplug.d/atm
+ $(INSTALL_DATA) ./files/etc/hotplug.d/atm/20-usb-modem $(1)/etc/hotplug.d/atm/
endef
define Package/ppp-mod-pppoe/install
diff --git a/package/ppp/files/etc/hotplug.d/atm/20-usb-modem b/package/ppp/files/etc/hotplug.d/atm/20-usb-modem
new file mode 100644
index 0000000000..ab9e3b7f8e
--- /dev/null
+++ b/package/ppp/files/etc/hotplug.d/atm/20-usb-modem
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+if [ "$ACTION" = "add" ]; then
+ include /lib/network
+ scan_interfaces
+
+ local found=0
+ local ifc
+ for ifc in $interfaces; do
+ local up
+ config_get_bool up "$ifc" up 0
+
+ local proto
+ config_get proto "$ifc" proto
+
+ if [ "$proto" = "pppoa" ] && [ "$up" != 1 ]; then
+ found=1
+ ( sleep 1; ifup "$ifc" ) &
+ fi
+ done
+
+ if [ "$found" != 1 ]; then
+ logger "Found no matching interface for DSL device $DEVICENAME"
+ fi
+fi