aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/uqmi/files
diff options
context:
space:
mode:
authorFlorian Eckert <fe@dev.tdt.de>2018-04-12 13:20:49 +0200
committerKoen Vandeputte <koen.vandeputte@ncentric.com>2018-10-11 12:18:16 +0200
commitdec1bfa0f48d43174921d1a1357a4842f9ba0cf6 (patch)
treeeb914a611b3f23a808cd3f3bc96f64fc78f32c64 /package/network/utils/uqmi/files
parentdee93def394c9bf10d2cc3eb64d9e190ca461a67 (diff)
downloadupstream-dec1bfa0f48d43174921d1a1357a4842f9ba0cf6.tar.gz
upstream-dec1bfa0f48d43174921d1a1357a4842f9ba0cf6.tar.bz2
upstream-dec1bfa0f48d43174921d1a1357a4842f9ba0cf6.zip
uqmi: do not block proto handler if modem is unable to registrate
QMI proto setup-handler will wait forever if it is unable to registrate to the mobile network. To fix this stop polling network registration status and notify netifd. Netifd will generate then a "ifup-failed" ACTION. Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Diffstat (limited to 'package/network/utils/uqmi/files')
-rwxr-xr-xpackage/network/utils/uqmi/files/lib/netifd/proto/qmi.sh11
1 files changed, 10 insertions, 1 deletions
diff --git a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
index a0dcb17cde..f3c5487574 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -123,9 +123,18 @@ proto_qmi_setup() {
uqmi -s -d "$device" --sync > /dev/null 2>&1
echo "Waiting for network registration"
+ local registration_timeout=0
while uqmi -s -d "$device" --get-serving-system | grep '"searching"' > /dev/null; do
[ -e "$device" ] || return 1
- sleep 5;
+ if [ "$registration_timeout" -lt "$timeout" ]; then
+ let registration_timeout++
+ sleep 1;
+ else
+ echo "Network registration failed"
+ proto_notify_error "$interface" NETWORK_REGISTRATION_FAILED
+ proto_block_restart "$interface"
+ return 1
+ fi
done
[ -n "$modes" ] && uqmi -s -d "$device" --set-network-modes "$modes" > /dev/null 2>&1