summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoen Vandeputte <koen.vandeputte@ncentric.com>2018-02-07 13:23:27 +0100
committerJohn Crispin <john@phrozen.org>2018-02-13 10:01:53 +0100
commit3508f8abb492914b6b287b5d60084acb8aff34d2 (patch)
tree4a59b7bb6d89beafaf798a11159c1949c3a2062e
parent3c5471032b9a32a44ee8f5f5b726401fe9eb81e5 (diff)
downloadmtk-20170518-3508f8abb492914b6b287b5d60084acb8aff34d2.zip
mtk-20170518-3508f8abb492914b6b287b5d60084acb8aff34d2.tar.gz
mtk-20170518-3508f8abb492914b6b287b5d60084acb8aff34d2.tar.bz2
uqmi: use correct value for connection checking
Originally, the implementation only checked if uqmi command execution succeeded properly without actually checking it's returned data. This lead to a pass, even when the returned data was indicating an error. Rework the verification to actually check the returned data, which can only be correct if the uqmi command itself also executed correctly. On command execution success, value "pdh_" is a pure numeric value. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-rwxr-xr-xpackage/network/utils/uqmi/files/lib/netifd/proto/qmi.sh12
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 eba0922..bdab5ee 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -156,12 +156,14 @@ proto_qmi_setup() {
${username:+--username $username} \
${password:+--password $password} \
${autoconnect:+--autoconnect})
- [ $? -ne 0 ] && {
+
+ # pdh_4 is a numeric value on success
+ if ! [ "$pdh_4" -eq "$pdh_4" ] 2> /dev/null; then
echo "Unable to connect IPv4"
uqmi -s -d "$device" --set-client-id wds,"$cid_4" --release-client-id wds
proto_notify_error "$interface" CALL_FAILED
return 1
- }
+ fi
}
[ "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && {
@@ -182,12 +184,14 @@ proto_qmi_setup() {
${username:+--username $username} \
${password:+--password $password} \
${autoconnect:+--autoconnect})
- [ $? -ne 0 ] && {
+
+ # pdh_6 is a numeric value on success
+ if ! [ "$pdh_6" -eq "$pdh_6" ] 2> /dev/null; then
echo "Unable to connect IPv6"
uqmi -s -d "$device" --set-client-id wds,"$cid_6" --release-client-id wds
proto_notify_error "$interface" CALL_FAILED
return 1
- }
+ fi
}
echo "Setting up $ifname"