diff --git a/Shorewall/Perl/Shorewall/Compiler.pm b/Shorewall/Perl/Shorewall/Compiler.pm index 045072b64..dc326533c 100644 --- a/Shorewall/Perl/Shorewall/Compiler.pm +++ b/Shorewall/Perl/Shorewall/Compiler.pm @@ -262,6 +262,32 @@ sub generate_script_2() { emit ( 'esac' ) , } + unless ( $providers ) { + my $interfaces = find_interfaces_by_option 'optional'; + + if ( $interfaces ) { + emit ''; + + my $first = 1; + + for my $interface ( @$interfaces ) { + my $base = uc chain_base( $interface ); + + if ( $first ) { + $first = 0; + } else { + emit ''; + } + + emit ( "if interface_is_usable $interface; then" , + " ${base}_IS_UP=Yes" , + 'else' , + " ${base}_IS_UP=" , + 'fi' ); + } + } + } + pop_indent; emit "\n}\n"; # End of initialize() diff --git a/Shorewall/Perl/Shorewall/Providers.pm b/Shorewall/Perl/Shorewall/Providers.pm index 155fafa33..11eb02c15 100644 --- a/Shorewall/Perl/Shorewall/Providers.pm +++ b/Shorewall/Perl/Shorewall/Providers.pm @@ -33,7 +33,7 @@ use Shorewall::Chains qw(:DEFAULT :internal); use strict; our @ISA = qw(Exporter); -our @EXPORT = qw( setup_providers @routemarked_interfaces handle_stickiness ); +our @EXPORT = qw( setup_providers @routemarked_interfaces handle_stickiness $providers ); our @EXPORT_OK = qw( initialize lookup_provider ); our $VERSION = '4.3_7'; @@ -56,6 +56,8 @@ our %providers; our @providers; +our $providers; + our $family; # @@ -746,7 +748,7 @@ sub test_optional_providers() { } sub setup_providers() { - my $providers = 0; + $providers = 0; my $fn = open_file 'providers'; @@ -794,30 +796,6 @@ sub setup_providers() { emit "fi\n"; } - - my $interfaces = find_interfaces_by_option 'optional'; - - if ( $interfaces ) { - emit ''; - - my $first = 1; - - for my $interface ( @$interfaces ) { - my $base = uc chain_base( $interface ); - - if ( $first ) { - $first = 0; - } else { - emit ''; - } - - emit ( "if interface_is_usable $interface; then" , - " ${base}_IS_UP=Yes" , - 'else' , - " ${base}_IS_UP=" , - 'fi' ); - } - } } }