diff options
author | Daniel Golle <daniel@makrotopia.org> | 2022-03-24 18:40:14 +0000 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2022-03-27 16:14:00 +0100 |
commit | d7354297bb32123c61d1f6baf211e746ca8015f0 (patch) | |
tree | 6a5122d057e0acede113fdfc9ade0ca16ab4a3ee | |
parent | 1e35d95a5bfac3896df0855f13afdfe6e132d5b1 (diff) | |
download | upstream-d7354297bb32123c61d1f6baf211e746ca8015f0.tar.gz upstream-d7354297bb32123c61d1f6baf211e746ca8015f0.tar.bz2 upstream-d7354297bb32123c61d1f6baf211e746ca8015f0.zip |
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@makrotopia.org>
(cherry picked from commit ee7cb5e885118b78fb5f692d8ed6c93bb7e35853)
-rwxr-xr-x | package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 12 |
1 files 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 |