Merge pull request #4853 from StevenHessing/noddos
[feed/packages.git] / net / mwan3 / files / usr / sbin / mwan3
index 63617316cb2d8ed6b92ee7b732981787f6e45f5b..38e80a08300da1f6f0d61e2b0cd545674e285c37 100755 (executable)
@@ -1,11 +1,5 @@
 #!/bin/sh
 
-[ -x /usr/bin/ip ] || exit 4
-[ -x /usr/sbin/ipset ] || exit 5
-[ -x /usr/sbin/iptables ] || exit 6
-[ -x /usr/sbin/ip6tables ] || exit 7
-[ -x /usr/bin/logger ] || exit 8
-
 . /lib/functions.sh
 . /lib/functions/network.sh
 . /lib/mwan3/mwan3.sh
@@ -42,9 +36,8 @@ ifdown()
 
        ACTION=ifdown INTERFACE=$1 /sbin/hotplug-call iface
 
-       if [ -e /var/run/mwan3track-$1.pid ] ; then
-               kill $(cat /var/run/mwan3track-$1.pid)
-       fi
+       kill $(pgrep -f "mwan3track $1 $2") &> /dev/null
+       mwan3_track_clean $1
 }
 
 ifup()
@@ -129,6 +122,9 @@ stop()
 
        killall mwan3track &> /dev/null
 
+       config_load mwan3
+       config_foreach mwan3_track_clean interface
+
        for IP in "$IP4" "$IP6"; do
 
                for route in $($IP route list table all | sed 's/.*table \([^ ]*\) .*/\1/' |  awk '{print $1}' | awk '{for(i=1;i<=NF;i++) if($i+0>0) if($i+0<255) {print;break}}'); do
@@ -161,6 +157,9 @@ stop()
        for ipset in $($IPS -n list | grep mwan3 | grep -E '_v4|_v6'); do
                $IPS -q destroy $ipset
        done
+
+       mwan3_lock_clean
+       rm -rf $MWAN3_STATUS_DIR $MWAN3TRACK_STATUS_DIR
 }
 
 restart() {