Ticket #9211: comgt-2.patch

File comgt-2.patch, 1.3 KB (added by Layne Edwards <ledwards@…>, 7 years ago)

update 3g-hotplug to not iterate over all devices, but only the current device; created remove handler to bring down interface

  • package/comgt/files/3g.usb

     
    2121                local dev 
    2222                config_get dev "$cfg" device 
    2323 
    24                 if [ "${dev##*/}" = "${tty##*/}" ] && [ -z "$(ls /var/lock | grep ${dev##*/})" ]; then 
    25                         log "Starting interface $cfg for device ${dev##*/}" 
    26                         ( sleep 1; /sbin/ifup "$cfg" ) & 
     24                if [ "${dev##*/}" = "${tty##*/}" ]; then 
     25                        if [ "$ACTION" = add ]; then 
     26                                log "Starting interface $cfg for device ${dev##*/}" 
     27                                ( sleep 1; /sbin/ifup "$cfg" ) & 
     28                        else 
     29                                log "Stopping interface $cfg for device ${dev##*/}" 
     30                                /sbin/ifdown "$cfg" & 
     31                        fi 
    2732                fi 
    2833        } 
    2934} 
    3035 
     36case "$DEVICENAME" in 
     37        tty*) config_load network;; 
     38        *) exit 0;; 
     39esac 
    3140 
    32 if [ "$ACTION" = add ]; then 
    33         case "$DEVICENAME" in 
    34                 tty*) config_load network;; 
    35                 *) exit 0;; 
    36         esac 
     41case "$ACTION" in 
     42        add) 
     43                [ -e "/dev/$DEVICENAME" ] && { 
     44                        config_foreach find_3g_iface interface "/dev/$DEVICENAME" 
     45                } 
     46        ;; 
    3747 
    38         local tty 
    39         for tty in /dev/ttyUSB* /dev/ttyACM* /dev/ttyHS*; do 
    40                 [ -e "$tty" ] || continue 
    41                 config_foreach find_3g_iface interface "$tty" 
    42         done 
    43 fi 
     48        remove) 
     49                config_foreach find_3g_iface interface "/dev/$DEVICENAME" 
     50        ;; 
     51esac