diff mbox series

[LEDE-DEV,7/9] uqmi: use correct value for connection checking

Message ID 1518704164-22198-8-git-send-email-koen.vandeputte@ncentric.com
State Accepted
Delegated to: John Crispin
Headers show
Series uqmi: Add raw-ip mode support for 17.01 branch | expand

Commit Message

Koen Vandeputte Feb. 15, 2018, 2:16 p.m. UTC
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>
---
 package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
diff mbox series

Patch

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 eba0922e57de..bdab5ee5143b 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"