uqmi: work out the ifname instead of relying on it being in uci
authorFelix Fietkau <nbd@openwrt.org>
Thu, 2 Oct 2014 12:18:28 +0000 (12:18 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 2 Oct 2014 12:18:28 +0000 (12:18 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 42719

package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

index 693fd6c115cab3d9f887a57f3c2ad50a59316d5d..ce86dfce744b038389f37153fcc4c7b91a5c7143 100755 (executable)
@@ -5,6 +5,8 @@
 init_proto "$@"
 
 proto_qmi_init_config() {
+       available=1
+       no_device=1
        proto_config_add_string "device:device"
        proto_config_add_string apn
        proto_config_add_string auth
@@ -34,6 +36,16 @@ proto_qmi_setup() {
                return 1
        }
 
+       devname="$(basename "$device")"
+       devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
+       ifname="$( ls "$devpath"/net )"
+       [ -n "$ifname" ] || {
+               logger -p daemon.err -t "qmi[$$]" "The interface could not be found."
+               proto_notify_error "$interface" NO_IFACE
+               proto_block_restart "$interface"
+               return 1
+       }
+
        [ -n "$delay" ] && sleep "$delay"
 
        while uqmi -s -d "$device" --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
@@ -93,7 +105,7 @@ proto_qmi_setup() {
        fi
 
        logger -p daemon.info -t "qmi[$$]" "Connected, starting DHCP"
-       proto_init_update "*" 1
+       proto_init_update "$ifname" 1
        proto_send_update "$interface"
 
        json_init