From: craigc Date: Mon, 28 Jun 2010 04:49:55 +0000 (+0000) Subject: [packages]: multiwan: X-Git-Url: http://207.154.207.93/?a=commitdiff_plain;h=72260a358c4f6aadf7be60e7e04b59a046bbc6e5;p=packages.git [packages]: multiwan: Repositioned MultiWan tables within iptables list. Added lan_if setting to change the main routing table to point towards a lan interface instead. git-svn-id: svn://svn.openwrt.org/openwrt/packages@21973 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- diff --git a/net/multiwan/Makefile b/net/multiwan/Makefile index 0db723fb0..141ef0de9 100644 --- a/net/multiwan/Makefile +++ b/net/multiwan/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=multiwan -PKG_VERSION:=1.0.14 +PKG_VERSION:=1.0.15 PKG_RELEASE:=1 include $(INCLUDE_DIR)/package.mk diff --git a/net/multiwan/files/etc/config/multiwan b/net/multiwan/files/etc/config/multiwan index c02854bff..56d34dde0 100644 --- a/net/multiwan/files/etc/config/multiwan +++ b/net/multiwan/files/etc/config/multiwan @@ -1,6 +1,7 @@ config 'multiwan' 'config' option 'default_route' 'balancer' + option 'lan_if' 'lan' config 'interface' 'wan' option 'weight' '10' diff --git a/net/multiwan/files/usr/bin/multiwan b/net/multiwan/files/usr/bin/multiwan index 083fab29e..b10553d3b 100755 --- a/net/multiwan/files/usr/bin/multiwan +++ b/net/multiwan/files/usr/bin/multiwan @@ -600,26 +600,18 @@ iptables -t mangle -A FastBalancer -j MARK --set-mark 0x1 iptables -t mangle -A FastBalancer -j CONNMARK --save-mark fi -iptables -t mangle -I PREROUTING -j MultiWan -iptables -t mangle -I PREROUTING 2 -j MultiWanPreHandler -iptables -t mangle -I PREROUTING 3 -j MultiWanRules -iptables -t mangle -I PREROUTING 4 -j MultiWanLoadBalancer -iptables -t mangle -I PREROUTING 5 -j MultiWanDNS - +iptables -t mangle -A MultiWan -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark +iptables -t mangle -A MultiWan -j MultiWanPreHandler +iptables -t mangle -A MultiWan -j MultiWanRules +iptables -t mangle -A MultiWan -j MultiWanLoadBalancer +iptables -t mangle -A MultiWan -j MultiWanDNS +iptables -t mangle -A MultiWan -j MultiWanPostHandler +iptables -t mangle -I PREROUTING -j MultiWan iptables -t mangle -I FORWARD -j MultiWan - iptables -t mangle -I OUTPUT -j MultiWan -iptables -t mangle -I OUTPUT 2 -j MultiWanRules -iptables -t mangle -I OUTPUT 3 -j MultiWanLoadBalancer -iptables -t mangle -I OUTPUT 4 -j MultiWanPostHandler -iptables -t mangle -I OUTPUT 5 -j MultiWanDNS - - iptables -t mangle -I POSTROUTING -j MultiWan -iptables -t mangle -I POSTROUTING 2 -j MultiWanPostHandler -iptables -t mangle -A MultiWan -j CONNMARK --restore-mark refresh_dns @@ -645,11 +637,9 @@ iptables -t mangle -A MultiWanPostHandler -o $ifname -m mark --mark 0x1 -j FW${i done if [ ! -z "$CHKFORQOS" ]; then -iptables -t mangle -I PREROUTING 6 -j MultiWanQoS -iptables -t mangle -A FORWARD -j MultiWanQoS -iptables -t mangle -A OUTPUT -j MultiWanQoS -iptables -t mangle -A POSTROUTING -j MultiWanQoS +iptables -t mangle -A MultiWan -j MultiWanQoS fi + } refresh_loadbalancer() { @@ -742,6 +732,7 @@ local gateway local group local ifname local ipaddr +local lanip local i echo "## Refreshing Routing Tables ##" @@ -754,7 +745,6 @@ group=$(query_config group $i) gateway=$(query_config gateway $group) ifname=$(query_config ifname $group) ipaddr=$(query_config ipaddr $group) - ip route flush table $(expr $i + 170) > /dev/null 2>&1 for TABLE in $(expr $i + 170) @@ -767,7 +757,15 @@ ip route flush table $(expr $i + 170) > /dev/null 2>&1 if [ "$gateway" != "x" -a "$ipaddr" != "x" -a "$ifname" != "x" ]; then ip route add default via $gateway table $(expr $i + 170) src $ipaddr proto static -route add default gw $gateway dev $ifname +ip route del default > /dev/null 2>&1 + + if [ ! -z $lan_if ]; then + lanip=`uci -q -P /var/state get network.${lan_if}.ipaddr` + else + lanip=`uci -q -P /var/state get network.lan.ipaddr` + fi + +ip route add default via $lanip > /dev/null 2>&1 fi done @@ -1066,6 +1064,7 @@ wancount=0 config_clear config_load "multiwan" config_get default_route config default_route +config_get lan_if config lan_if config_get debug config debug config_foreach acquire_wan_data interface