From: Florian Eckert <fe@dev.tdt.de>
Date: Tue, 10 Apr 2018 13:56:24 +0000 (+0200)
Subject: uqmi: do not block proto handler if SIM is uninitialized
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=f171a86d064ac3fcfff05d286becae87c2e26b5f;p=openwrt%2Fstaging%2Fansuel.git

uqmi: do not block proto handler if SIM is uninitialized

QMI proto setup-handler will wait forever if SIM does not get initialized.
To fix this stop polling pin status and notify netifd. Netifd will generate
then a "ifup-failed" ACTION.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
---

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 f3c5487574..f6e964fb20 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -70,7 +70,15 @@ proto_qmi_setup() {
 
 	while uqmi -s -d "$device" --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
 		[ -e "$device" ] || return 1
-		sleep 1;
+		if [ "$uninitialized_timeout" -lt "$timeout" ]; then
+			let uninitialized_timeout++
+			sleep 1;
+		else
+			echo "SIM not initialized"
+			proto_notify_error "$interface" SIM_NOT_INITIALIZED
+			proto_block_restart "$interface"
+			return 1
+		fi
 	done
 
 	[ -n "$pincode" ] && {