net/mwan3: add init script to enable/disable mwan3 globally
authorFlorian Eckert <fe@dev.tdt.de>
Mon, 5 Feb 2018 09:15:03 +0000 (10:15 +0100)
committerFlorian Eckert <fe@dev.tdt.de>
Mon, 5 Feb 2018 09:29:23 +0000 (10:29 +0100)
Adding a init script to "/etc/init.d/" introduce the possibility to
enable/disable mwan3 globally.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
net/mwan3/files/etc/hotplug.d/iface/14-mwan3
net/mwan3/files/etc/hotplug.d/iface/15-mwan3
net/mwan3/files/etc/hotplug.d/iface/16-mwan3-user
net/mwan3/files/etc/init.d/mwan3 [new file with mode: 0755]
net/mwan3/files/usr/sbin/mwan3

index f977b3d84c750fc2c18b7ddf72d7da2a4c2db061..4f8e0be16490fb94160bdc86cc6a29e67081eff1 100644 (file)
@@ -12,6 +12,9 @@ if [ "$ACTION" = "ifup" ]; then
 fi
 
 config_load mwan3
+config_get_bool enabled globals 'enabled' '0'
+[ ${enabled} -gt 0 ] || exit 0
+
 config_get local_source globals local_source 'none'
 [ "${local_source}" = "none" ] && {
        exit 0
index 71d6393b434ab25e56a359cf1e39cd3caf04a4c8..bea7baad95de7504eb3d6129e0594950a65b67ed 100644 (file)
@@ -12,15 +12,18 @@ if [ "$ACTION" == "ifup" ]; then
         [ -n "$DEVICE" ] || exit 3
 fi
 
-mwan3_lock
-mwan3_set_connected_iptables
-mwan3_unlock
-
 config_load mwan3
+config_get_bool enabled globals 'enabled' '0'
+[ ${enabled} -gt 0 ] || exit 0
+
 config_get enabled $INTERFACE enabled 0
 config_get initial_state $INTERFACE initial_state "online"
 [ "$enabled" == "1" ] || exit 0
 
+mwan3_lock
+mwan3_set_connected_iptables
+mwan3_unlock
+
 if [ "$ACTION" == "ifup" ]; then
        config_get family $INTERFACE family ipv4
        if [ "$family" = "ipv4" ]; then
index 485f8de4e96f67aeefea72378912584848a22e69..9372c736e100607f9411eb327ff47e7ef7d3d14e 100644 (file)
@@ -4,6 +4,9 @@
        . /lib/functions.sh
 
        config_load mwan3
+       config_get_bool enabled globals 'enabled' '0'
+       [ ${enabled} -gt 0 ] || exit 0
+
        config_get enabled "$INTERFACE" enabled 0
        [ "${enabled}" = "1" ] || exit 0
        env -i ACTION="$ACTION" INTERFACE="$INTERFACE" DEVICE="$DEVICE" \
diff --git a/net/mwan3/files/etc/init.d/mwan3 b/net/mwan3/files/etc/init.d/mwan3
new file mode 100755 (executable)
index 0000000..dac1fb8
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh /etc/rc.common
+
+START=19
+
+reload() {
+       local enabled
+
+       config_load mwan3
+       config_get_bool enabled globals 'enabled' 0
+       [ ${enabled} -gt 0 ] || {
+               echo "Warning: mwan3 is global disabled. Usage: /etc/init.d/mwan3 start"
+               exit 0
+       }
+       mwan3 restart
+}
+
+boot() {
+       . /lib/config/uci.sh
+       uci_toggle_state mwan3 globals enabled "1"
+}
+
+start() {
+       . /lib/config/uci.sh
+       uci_toggle_state mwan3 globals enabled "1"
+       mwan3 start
+}
+
+stop() {
+       . /lib/config/uci.sh
+       uci_toggle_state mwan3 globals enabled "0"
+       mwan3 stop
+}
index 38e80a08300da1f6f0d61e2b0cd545674e285c37..3e1b644566ad76ecc3121a9f83227b8b99494bb6 100755 (executable)
@@ -54,6 +54,12 @@ ifup()
                echo "Too many arguments. Usage: mwan3 ifup <interface>" && exit 0
        fi
 
+       config_get_bool enabled globals 'enabled' 0
+       [ ${enabled} -gt 0 ] || {
+               echo "Warning: mwan3 is global disabled. Usage: /etc/init.d/mwan3 start"
+               exit 0
+       }
+
        config_get enabled "$1" enabled 0
 
        device=$(uci -p /var/state get network.$1.ifname) &> /dev/null
@@ -112,7 +118,15 @@ status()
 
 start()
 {
+       local enabled
+
        config_load mwan3
+       config_get_bool enabled globals 'enabled' 0
+       [ ${enabled} -gt 0 ] || {
+               echo "Warning: mwan3 is global disabled. Usage: /etc/init.d/mwan3 start"
+               exit 0
+       }
+
        config_foreach ifup interface
 }