Merge pull request #4722 from TDT-GmbH/mwan3-fixes

net/mwan3: fixes for mwan3 (lede-17.01)
This commit is contained in:
champtar
2017-08-25 14:10:45 -07:00
committed by GitHub
5 changed files with 34 additions and 14 deletions
+3 -4
View File
@@ -8,9 +8,9 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=mwan3 PKG_NAME:=mwan3
PKG_VERSION:=2.0 PKG_VERSION:=2.0.1
PKG_RELEASE:=3 PKG_RELEASE:=1
PKG_MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com> PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
PKG_LICENSE:=GPLv2 PKG_LICENSE:=GPLv2
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@@ -21,7 +21,6 @@ define Package/mwan3
SUBMENU:=Routing and Redirection SUBMENU:=Routing and Redirection
DEPENDS:=+ip +ipset +iptables +iptables-mod-conntrack-extra +iptables-mod-ipopt DEPENDS:=+ip +ipset +iptables +iptables-mod-conntrack-extra +iptables-mod-ipopt
TITLE:=Multiwan hotplug script with connection tracking support TITLE:=Multiwan hotplug script with connection tracking support
MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
PKGARCH:=all PKGARCH:=all
endef endef
+14 -9
View File
@@ -4,11 +4,6 @@
. /lib/functions/network.sh . /lib/functions/network.sh
. /lib/mwan3/mwan3.sh . /lib/mwan3/mwan3.sh
config_load mwan3
config_get enabled $INTERFACE enabled 0
[ "$enabled" == "1" ] || exit 0
[ "$ACTION" == "ifup" -o "$ACTION" == "ifdown" ] || exit 1 [ "$ACTION" == "ifup" -o "$ACTION" == "ifdown" ] || exit 1
[ -n "$INTERFACE" ] || exit 2 [ -n "$INTERFACE" ] || exit 2
@@ -22,6 +17,14 @@ fi
[ -x /usr/sbin/ip6tables ] || exit 7 [ -x /usr/sbin/ip6tables ] || exit 7
[ -x /usr/bin/logger ] || exit 8 [ -x /usr/bin/logger ] || exit 8
mwan3_lock
mwan3_set_connected_iptables
mwan3_unlock
config_load mwan3
config_get enabled $INTERFACE enabled 0
[ "$enabled" == "1" ] || exit 0
config_get family $INTERFACE family ipv4 config_get family $INTERFACE family ipv4
if [ "$family" == "ipv4" ]; then if [ "$family" == "ipv4" ]; then
@@ -30,12 +33,13 @@ elif [ "$family" == "ipv6" ]; then
network_get_gateway6 gateway $INTERFACE network_get_gateway6 gateway $INTERFACE
fi fi
[ -n "$gateway" ] || exit 9 if [ "$ACTION" == "ifup" ]; then
[ -n "$gateway" ] || exit 9
fi
mwan3_lock
$LOG notice "$ACTION interface $INTERFACE (${DEVICE:-unknown})" $LOG notice "$ACTION interface $INTERFACE (${DEVICE:-unknown})"
mwan3_set_connected_iptables
case "$ACTION" in case "$ACTION" in
ifup) ifup)
mwan3_set_general_rules mwan3_set_general_rules
@@ -49,7 +53,6 @@ case "$ACTION" in
;; ;;
ifdown) ifdown)
mwan3_delete_iface_rules $INTERFACE mwan3_delete_iface_rules $INTERFACE
mwan3_delete_iface_iptables $INTERFACE
mwan3_delete_iface_route $INTERFACE mwan3_delete_iface_route $INTERFACE
mwan3_delete_iface_ipset_entries $INTERFACE mwan3_delete_iface_ipset_entries $INTERFACE
mwan3_set_policies_iptables mwan3_set_policies_iptables
@@ -57,4 +60,6 @@ case "$ACTION" in
;; ;;
esac esac
mwan3_unlock
exit 0 exit 0
+12
View File
@@ -7,6 +7,18 @@ IPT4="/usr/sbin/iptables -t mangle -w"
IPT6="/usr/sbin/ip6tables -t mangle -w" IPT6="/usr/sbin/ip6tables -t mangle -w"
LOG="/usr/bin/logger -t mwan3 -p" LOG="/usr/bin/logger -t mwan3 -p"
mwan3_lock() {
lock /var/run/mwan3.lock
}
mwan3_unlock() {
lock -u /var/run/mwan3.lock
}
mwan3_lock_clean() {
rm -rf /var/run/mwan3.lock
}
mwan3_get_iface_id() mwan3_get_iface_id()
{ {
local _tmp _iface _iface_count local _tmp _iface _iface_count
+3
View File
@@ -46,6 +46,7 @@ ifdown()
kill $(cat /var/run/mwan3track-$1.pid) kill $(cat /var/run/mwan3track-$1.pid)
rm /var/run/mwan3track-$1.pid rm /var/run/mwan3track-$1.pid
fi fi
mwan3_delete_iface_iptables $1
} }
ifup() ifup()
@@ -163,6 +164,8 @@ stop()
for ipset in $($IPS -n list | grep mwan3 | grep -E '_v4|_v6'); do for ipset in $($IPS -n list | grep mwan3 | grep -E '_v4|_v6'); do
$IPS -q destroy $ipset $IPS -q destroy $ipset
done done
mwan3_lock_clean
} }
restart() { restart() {
+2 -1
View File
@@ -59,7 +59,8 @@ while true; do
fi fi
host_up_count=0 host_up_count=0
sleep $6 sleep $6 &
wait
done done
exit 1 exit 1