diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2011-05-03 19:39:13 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2011-05-03 19:39:13 +0000 |
commit | 4d8958b11dc0198d6d1c86abd7dae0ce7a4c2e3a (patch) | |
tree | 0b1a817328611731c4021aef3397999b9da5188d /package/comgt/files | |
parent | eade71f1b7cd53d64f875562275e2222a07b7e74 (diff) | |
download | master-187ad058-4d8958b11dc0198d6d1c86abd7dae0ce7a4c2e3a.tar.gz master-187ad058-4d8958b11dc0198d6d1c86abd7dae0ce7a4c2e3a.tar.bz2 master-187ad058-4d8958b11dc0198d6d1c86abd7dae0ce7a4c2e3a.zip |
[package] comgt: move 3g hotplug handling to tty subsystem, fixes race on coldplug (#9211)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26809 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/comgt/files')
-rw-r--r-- | package/comgt/files/3g.usb | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/package/comgt/files/3g.usb b/package/comgt/files/3g.usb index d5a38b8a4c..ea2fba1509 100644 --- a/package/comgt/files/3g.usb +++ b/package/comgt/files/3g.usb @@ -22,8 +22,11 @@ find_3g_iface() { config_get dev "$cfg" device if [ "${dev##*/}" = "${tty##*/}" ]; then - log "Starting interface $cfg for device ${tty##*/}" - ( sleep 1; /sbin/ifup "$cfg" ) & + [ -z "$(ls /var/lock | grep ${dev##*/})" ] && { + log "Starting interface $cfg for device ${dev##*/}" + sleep 1 + /sbin/ifup "$cfg" + } fi } } @@ -31,13 +34,13 @@ find_3g_iface() { if [ "$ACTION" = add ]; then case "$DEVICENAME" in - *-*:*.*) config_load network;; + tty*) config_load network;; *) exit 0;; esac local tty - for tty in /sys/$DEVPATH/ttyUSB* /sys/$DEVPATH/tty/ttyACM* /sys/$DEVPATH/tty/ttyHS*; do - [ -d "$tty" ] || continue + for tty in /dev/ttyUSB* /dev/ttyACM* /dev/ttyHS*; do + [ -e "$tty" ] || continue config_foreach find_3g_iface interface "$tty" done fi |