[openwrt/openwrt] uqmi: fix acquiring PIN status

LEDE Commits lede-commits at lists.infradead.org
Sun Mar 27 08:14:45 PDT 2022


dangole pushed a commit to openwrt/openwrt.git, branch openwrt-22.03:
https://git.openwrt.org/d7354297bb32123c61d1f6baf211e746ca8015f0

commit d7354297bb32123c61d1f6baf211e746ca8015f0
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Thu Mar 24 18:40:14 2022 +0000

    uqmi: fix acquiring PIN status
    
    Evaluating the return value of 'json_load' didn't work in the
    intended way resulting in PIN status no longer being read on modems
    where --get-pin-status doesn't fail.
    Fix this by trying --get-pin-status first and checking if pin1_status
    field exists in JSON, and if it doesn't try again with
    --uim-get-sim-state.
    
    Fixes: #9501
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
    (cherry picked from commit ee7cb5e885118b78fb5f692d8ed6c93bb7e35853)
---
 package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 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 ad577ea317..c2c5fc1eca 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -105,10 +105,12 @@ proto_qmi_setup() {
 			}
 		}
 	else
-		. /usr/share/libubox/jshn.sh
-		json_load "$(uqmi -s -d "$device" --get-pin-status)" 2>&1 | grep -q Failed &&
-			json_load "$(uqmi -s -d "$device" --uim-get-sim-state)"
+		json_load "$(uqmi -s -d "$device" --get-pin-status)"
 		json_get_var pin1_status pin1_status
+		if [ -z "$pin1_status" ]; then
+			json_load "$(uqmi -s -d "$device" --uim-get-sim-state)"
+			json_get_var pin1_status pin1_status
+		fi
 		json_get_var pin1_verify_tries pin1_verify_tries
 
 		case "$pin1_status" in
@@ -152,6 +154,7 @@ proto_qmi_setup() {
 				return 1
 			;;
 		esac
+		json_cleanup
 	fi
 
 	if [ -n "$plmn" ]; then
@@ -247,7 +250,8 @@ proto_qmi_setup() {
 
 	echo "Starting network $interface"
 
-	pdptype=$(echo "$pdptype" | awk '{print tolower($0)}')
+	pdptype="$(echo "$pdptype" | awk '{print tolower($0)}')"
+
 	[ "$pdptype" = "ip" -o "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] || pdptype="ip"
 
 	if [ "$pdptype" = "ip" ]; then




More information about the lede-commits mailing list