Fix default route generation with explicit GATEWAYs in providers file -- take 3

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@3844 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep 2006-05-02 21:42:42 +00:00
parent ee666a6d79
commit 23d0aa0b0e

View File

@ -1158,6 +1158,21 @@ done
__EOF__ __EOF__
} }
balance_default_route() # $1 = weight
{
if [ -n "$first"]; then
if [ "x$gateway" = xdetect ] ; then
save_command "DEFAULT_ROUTE=\"nexthop via \$gateway dev $interface weight $1\""
else
save_command "DEFAULT_ROUTE=\"nexthop via $gateway dev $interface weight $1\""
fi
elif [ "x$gateway" = xdetect ] ; then
save_command "DEFAULT_ROUTE=\"\$DEFAULT_ROUTE nexthop via \$gateway dev $interface weight $1\""
else
save_command "DEFAULT_ROUTE=\"\$DEFAULT_ROUTE nexthop via $gateway dev $interface weight $1\""
fi
}
add_a_provider() { add_a_provider() {
local t n iface option first=Yes local t n iface option first=Yes
@ -1244,27 +1259,11 @@ __EOF__
;; ;;
balance=*) balance=*)
balance=yes balance=yes
if [ -n "$first"]; then balance_default_route ${option#*=}
if [ "x$gateway" = xdetect ] ; then
save_command "DEFAULT_ROUTE=\"nexthop via \$gateway dev $interface weight ${option#*=}\""
else
save_command "DEFAULT_ROUTE=\"nexthop via $gateway dev $interface weight ${option#*=}\""
fi
else
if [ "x$gateway" = xdetect ] ; then
save_command "DEFAULT_ROUTE=\"\$DEFAULT_ROUTE nexthop via \$gateway dev $interface weight ${option#*=}\""
else
save_command "DEFAULT_ROUTE=\"\$DEFAULT_ROUTE nexthop via $gateway dev $interface weight ${option#*=}\""
fi
fi
;; ;;
balance) balance)
balance=yes balance=yes
if [ "x$gateway" = xdetect ] ; then balance_default_route 1
save_command "DEFAULT_ROUTE=\"\$DEFAULT_ROUTE nexthop via \$gateway dev $interface weight 1\""
else
save_command "DEFAULT_ROUTE=\"\$DEFAULT_ROUTE nexthop via $gateway dev $interface weight 1\""
fi
;; ;;
loose) loose)
loose=Yes loose=Yes