aboutsummaryrefslogtreecommitdiffstats
path: root/package/comgt/files/3g.usb
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2010-07-04 18:11:34 +0000
committerJo-Philipp Wich <jow@openwrt.org>2010-07-04 18:11:34 +0000
commiteccba67e0a96c40cac84906b6e4a4f370c9c1ff0 (patch)
tree9fe8ca60c502c862c288d324475b559681651d03 /package/comgt/files/3g.usb
parent3e425b2cbc905691b83360c934ebf0b7e77fbc68 (diff)
downloadupstream-eccba67e0a96c40cac84906b6e4a4f370c9c1ff0.tar.gz
upstream-eccba67e0a96c40cac84906b6e4a4f370c9c1ff0.tar.bz2
upstream-eccba67e0a96c40cac84906b6e4a4f370c9c1ff0.zip
comgt: add usb hotplug handler to bring up 3g ifaces on boot or when the dongle is attached
SVN-Revision: 22061
Diffstat (limited to 'package/comgt/files/3g.usb')
-rw-r--r--package/comgt/files/3g.usb43
1 files changed, 43 insertions, 0 deletions
diff --git a/package/comgt/files/3g.usb b/package/comgt/files/3g.usb
new file mode 100644
index 0000000000..c52646b3dd
--- /dev/null
+++ b/package/comgt/files/3g.usb
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+. /etc/functions.sh
+
+log() {
+ logger -t 3g-hotplug "$@"
+}
+
+find_3g_iface() {
+ local cfg="$1"
+ local tty="$2"
+
+ local proto
+ config_get proto "$cfg" proto
+
+ [ "$proto" = 3g ] && {
+ local auto
+ config_get_bool auto "$cfg" auto 1
+ [ "$auto" = 1 ] || return 0
+
+ local dev
+ config_get dev "$cfg" device
+
+ if [ "${dev##*/}" = "${tty##*/}" ]; then
+ log "Starting interface $cfg for device ${tty##*/}"
+ ( sleep 1; /sbin/ifup "$cfg" ) &
+ fi
+ }
+}
+
+
+if [ "$ACTION" = add ]; then
+ case "$DEVICENAME" in
+ *-*:*.*) config_load network;;
+ *) exit 0;;
+ esac
+
+ local tty
+ for tty in /sys/$DEVPATH/ttyUSB*; do
+ [ -d "$tty" ] || break
+ config_foreach find_3g_iface interface "$tty"
+ done
+fi