aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/umbim
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2014-10-08 08:00:07 +0000
committerJohn Crispin <john@openwrt.org>2014-10-08 08:00:07 +0000
commit2fa06954a315df50cd4125b6d49a04e9aec707ee (patch)
tree723cd4cf5db41c6d50d93979a8c878b365713e86 /package/network/utils/umbim
parente28c5f86f389392a6e986cf24c41d6dd4d790c5f (diff)
downloadupstream-2fa06954a315df50cd4125b6d49a04e9aec707ee.tar.gz
upstream-2fa06954a315df50cd4125b6d49a04e9aec707ee.tar.bz2
upstream-2fa06954a315df50cd4125b6d49a04e9aec707ee.zip
umbim: work out the ifname instead of relying on it being in uci
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42832
Diffstat (limited to 'package/network/utils/umbim')
-rwxr-xr-xpackage/network/utils/umbim/files/lib/netifd/proto/mbim.sh18
1 files 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)"
}