From ea6820d0cc6bfb85c179efb4e1a687ccbed642f8 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 8 Oct 2014 08:00:07 +0000 Subject: [PATCH] umbim: work out the ifname instead of relying on it being in uci Signed-off-by: John Crispin git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42832 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../utils/umbim/files/lib/netifd/proto/mbim.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh b/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh index a777c9bd60..46802f2d3c 100755 --- a/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh +++ b/package/network/utils/umbim/files/lib/netifd/proto/mbim.sh @@ -7,6 +7,8 @@ init_proto "$@" #DBG=-v proto_mbim_init_config() { + available=1 + no_device=1 proto_config_add_string "device:device" proto_config_add_string apn proto_config_add_string pincode @@ -36,6 +38,18 @@ proto_mbim_setup() { proto_block_restart "$interface" return 1 } + + devname="$(basename "$device")" + devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)" + ifname="$( ls "$devpath"/net )" + + [ -n "$ifname" ] || { + logger -p daemon.err -t "mbim[$$]" "Failed to find matching interface" + proto_notify_error "$interface" NO_IFNAME + proto_set_available "$interface" 0 + return 1 + } + [ -n "$apn" ] || { logger -p daemon.err -t "mbim[$$]" "No APN specified" proto_notify_error "$interface" NO_APN @@ -116,14 +130,14 @@ proto_mbim_setup() { json_init json_add_string name "${interface}_dhcp" - json_add_string ifname "@$interface" + json_add_string ifname "$ifname" json_add_string proto "dhcp" json_close_object ubus call network add_dynamic "$(json_dump)" json_init json_add_string name "${interface}_dhcpv6" - json_add_string ifname "@$interface" + json_add_string ifname "$ifname" json_add_string proto "dhcpv6" ubus call network add_dynamic "$(json_dump)" }