ar71xx: ag71xx: make switch register access atomic
[openwrt.git] / package / comgt / files / 3g.usb
index d5a38b8..ba6c646 100644 (file)
@@ -12,32 +12,31 @@ find_3g_iface() {
 
        local proto
        config_get proto "$cfg" proto
+       [ "$proto" = 3g ] || return 0
 
-       [ "$proto" = 3g ] && {
-               local auto
-               config_get_bool auto "$cfg" auto 1
-               [ "$auto" = 1 ] || return 0
+       local auto
+       config_get_bool auto "$cfg" auto 1
+       [ "$auto" = 1 ] || [ "$ACTION" = remove ] || return 0
 
-               local dev
-               config_get dev "$cfg" device
+       local dev
+       config_get dev "$cfg" device
 
-               if [ "${dev##*/}" = "${tty##*/}" ]; then
-                       log "Starting interface $cfg for device ${tty##*/}"
+       if [ "${dev##*/}" = "${tty##*/}" ]; then
+               if [ "$ACTION" = add ]; then
+                       log "Starting interface $cfg for device ${dev##*/}"
                        ( sleep 1; /sbin/ifup "$cfg" ) &
+               else
+                       log "Stopping interface $cfg for device ${dev##*/}"
+                       /sbin/ifdown "$cfg" &
                fi
-       }
+       fi
 }
 
+case "$DEVICENAME" in
+       tty*)
+               [ -e "/dev/$DEVICENAME" ] || [ "$ACTION" = remove ] || exit 0
+               config_load network
+               config_foreach find_3g_iface interface "/dev/$DEVICENAME"
+       ;;
+esac
 
-if [ "$ACTION" = add ]; then
-       case "$DEVICENAME" in
-               *-*:*.*) 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
-               config_foreach find_3g_iface interface "$tty"
-       done
-fi
This page took 0.029141 seconds and 4 git commands to generate.