[LEDE-DEV] [PATCH] uqmi: ensure CID is a numeric value before proceeding

Andrey Jr. Melnikov temnota.am at gmail.com
Mon Feb 19 02:47:47 PST 2018


Koen Vandeputte <koen.vandeputte at ncentric.com> wrote:
> The current implementation only checked if uqmi itself executed
> correctly which is also the case when the returned value is actually
> an error.

> Rework this, checking that CID is a numeric value, which can only
> be true if uqmi itself also executed correctly.

Why ignore exit status?
if [ $? -ne 0 -o ! "$cid_4" -eq "$cid_4" ]; ...

Also, write comment near this dirty trick, or someone optimize it to
if [ -n "$cid_x" ] ... 

> Signed-off-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
> ---
>  package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 8 ++++----
>  1 file changed, 4 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 c3da5ede26b1..46ea134182e3 100755
> --- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
> +++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
> @@ -140,11 +140,11 @@ proto_qmi_setup() {
>  
>         [ "$pdptype" = "ip" -o "$pdptype" = "ipv4v6" ] && {
>                 cid_4=$(uqmi -s -d "$device" --get-client-id wds)
> -               [ $? -ne 0 ] && {
> +               if ! [ "$cid_4" -eq "$cid_4" ] 2> /dev/null; then
>                         echo "Unable to obtain client ID"
>                         proto_notify_error "$interface" NO_CID
>                         return 1
> -               }
> +               fi
>  
>                 uqmi -s -d "$device" --set-client-id wds,"$cid_4" --set-ip-family ipv4 > /dev/null
>  
> @@ -177,11 +177,11 @@ proto_qmi_setup() {
>  
>         [ "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && {
>                 cid_6=$(uqmi -s -d "$device" --get-client-id wds)
> -               [ $? -ne 0 ] && {
> +               if ! [ "$cid_6" -eq "$cid_6" ] 2> /dev/null; then
>                         echo "Unable to obtain client ID"
>                         proto_notify_error "$interface" NO_CID
>                         return 1
> -               }
> +               fi
>  
>                 uqmi -s -d "$device" --set-client-id wds,"$cid_6" --set-ip-family ipv6 > /dev/null
>  
> -- 
> 2.7.4




More information about the Lede-dev mailing list