#!/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
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()
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
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() {