From cb4f9e72611b9d7fbb66a71e4385f44ef2d5dbea Mon Sep 17 00:00:00 2001 From: Tom Eastep Date: Wed, 11 Oct 2017 11:24:13 -0700 Subject: [PATCH] Don't restore default routes when there is an enabled fallback provider Signed-off-by: Tom Eastep --- Shorewall/Perl/Shorewall/Providers.pm | 4 +++- Shorewall/Perl/prog.footer | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Shorewall/Perl/Shorewall/Providers.pm b/Shorewall/Perl/Shorewall/Providers.pm index 6b46b54af..2b1893915 100644 --- a/Shorewall/Perl/Shorewall/Providers.pm +++ b/Shorewall/Perl/Shorewall/Providers.pm @@ -1005,6 +1005,8 @@ CEOF emit qq(echo "\$IP -$family route del default dev $physical table $id > /dev/null 2>&1" >> \${VARDIR}/undo_${table}_routing); } + emit( 'g_fallback=Yes' ) if $persistent; + $metrics = 1; } @@ -1592,7 +1594,7 @@ sub finish_providers() { ' error_message "WARNING: No Default route added (all \'balance\' providers are down)"' ); if ( $config{RESTORE_DEFAULT_ROUTE} ) { - emit qq( [ -z "\$FALLBACK_ROUTE" ] && restore_default_route $config{USE_DEFAULT_RT} && error_message "NOTICE: Default route restored") + emit qq( [ -z "\${FALLBACK_ROUTE}\${g_fallback}" ] && restore_default_route $config{USE_DEFAULT_RT} && error_message "NOTICE: Default route restored") } else { emit qq( qt \$IP -$family route del default table $table && error_message "WARNING: Default route deleted from table $table"); } diff --git a/Shorewall/Perl/prog.footer b/Shorewall/Perl/prog.footer index d5871f1bb..b06263244 100644 --- a/Shorewall/Perl/prog.footer +++ b/Shorewall/Perl/prog.footer @@ -132,6 +132,7 @@ g_docker= g_dockeringress= g_dockernetwork= g_forcereload= +g_fallback= [ -n "$SERVICEDIR" ] && SUBSYSLOCK=