From 23d0aa0b0e42d3355a7bac18b1995d917c5f5937 Mon Sep 17 00:00:00 2001 From: teastep Date: Tue, 2 May 2006 21:42:42 +0000 Subject: [PATCH] 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 --- Shorewall/compiler | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/Shorewall/compiler b/Shorewall/compiler index 93ff706ef..30ee2f9b4 100755 --- a/Shorewall/compiler +++ b/Shorewall/compiler @@ -1158,6 +1158,21 @@ done __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() { local t n iface option first=Yes @@ -1244,27 +1259,11 @@ __EOF__ ;; balance=*) balance=yes - if [ -n "$first"]; then - 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_default_route ${option#*=} ;; balance) balance=yes - if [ "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 + balance_default_route 1 ;; loose) loose=Yes