[openwrt/openwrt] uqmi: use correct value for connection checking

LEDE Commits lede-commits at lists.infradead.org
Tue Feb 13 01:02:46 PST 2018


blogic pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/3508f8abb492914b6b287b5d60084acb8aff34d2

commit 3508f8abb492914b6b287b5d60084acb8aff34d2
Author: Koen Vandeputte <koen.vandeputte at ncentric.com>
AuthorDate: Wed Feb 7 13:23:27 2018 +0100

    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 at ncentric.com>
---
 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 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"



More information about the lede-commits mailing list