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)
This commit is contained in:
parent
1e35d95a5b
commit
d7354297bb
@ -105,10 +105,12 @@ proto_qmi_setup() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
. /usr/share/libubox/jshn.sh
|
json_load "$(uqmi -s -d "$device" --get-pin-status)"
|
||||||
json_load "$(uqmi -s -d "$device" --get-pin-status)" 2>&1 | grep -q Failed &&
|
json_get_var pin1_status pin1_status
|
||||||
|
if [ -z "$pin1_status" ]; then
|
||||||
json_load "$(uqmi -s -d "$device" --uim-get-sim-state)"
|
json_load "$(uqmi -s -d "$device" --uim-get-sim-state)"
|
||||||
json_get_var pin1_status pin1_status
|
json_get_var pin1_status pin1_status
|
||||||
|
fi
|
||||||
json_get_var pin1_verify_tries pin1_verify_tries
|
json_get_var pin1_verify_tries pin1_verify_tries
|
||||||
|
|
||||||
case "$pin1_status" in
|
case "$pin1_status" in
|
||||||
@ -152,6 +154,7 @@ proto_qmi_setup() {
|
|||||||
return 1
|
return 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
json_cleanup
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$plmn" ]; then
|
if [ -n "$plmn" ]; then
|
||||||
@ -247,7 +250,8 @@ proto_qmi_setup() {
|
|||||||
|
|
||||||
echo "Starting network $interface"
|
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"
|
[ "$pdptype" = "ip" -o "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] || pdptype="ip"
|
||||||
|
|
||||||
if [ "$pdptype" = "ip" ]; then
|
if [ "$pdptype" = "ip" ]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user