diff --git a/Shorewall/Perl/Shorewall/Providers.pm b/Shorewall/Perl/Shorewall/Providers.pm index b8b30bb35..155fafa33 100644 --- a/Shorewall/Perl/Shorewall/Providers.pm +++ b/Shorewall/Perl/Shorewall/Providers.pm @@ -794,6 +794,30 @@ 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' ); + } + } } }