net/mwan3: execute only ifup event if l3_device is found
authorFlorian Eckert <fe@dev.tdt.de>
Tue, 8 May 2018 13:43:34 +0000 (15:43 +0200)
committerHannu Nyman <hannu.nyman@iki.fi>
Wed, 16 May 2018 13:56:13 +0000 (16:56 +0300)
Only execute an ifup event with the command "mwan3 ifup <iface>" if the
l3_device is found in the ubus "network.interface.<iface>".

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit ab4e62b885488716e6ef905198ce87b2beab29e4)

net/mwan3/files/usr/sbin/mwan3

index 681f82de3074677490c69d99cd086ba7becaaf8f..a0c296f18e2bc0ea2acce0787163a596723a044f 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 . /lib/functions.sh
+. /usr/share/libubox/jshn.sh
 . /lib/functions/network.sh
 . /lib/mwan3/mwan3.sh
 
@@ -42,7 +43,7 @@ ifdown()
 
 ifup()
 {
-       local device enabled
+       local device enabled up l3_device
 
        config_load mwan3
 
@@ -60,12 +61,14 @@ ifup()
                exit 0
        }
 
+       json_load $(ubus -S call network.interface.$1 status)
+       json_get_vars up l3_device
        config_get enabled "$1" enabled 0
 
-       device=$(uci -p /var/state get network.$1.ifname) &> /dev/null
-
-       if [ -n "$device" ] ; then
-               [ "$enabled" -eq 1 ] && ACTION=ifup INTERFACE=$1 DEVICE=$device /sbin/hotplug-call iface
+       if [ "$up" -eq 1 ] \
+               && [ -n "$l3_device" ] \
+               && [ "$enabled" -eq 1 ]; then
+               ACTION=ifup INTERFACE=$1 DEVICE=$l3_device /sbin/hotplug-call iface
        fi
 }