diff --git a/Shorewall/Perl/Shorewall/Providers.pm b/Shorewall/Perl/Shorewall/Providers.pm index d48bbd617..1775955b2 100644 --- a/Shorewall/Perl/Shorewall/Providers.pm +++ b/Shorewall/Perl/Shorewall/Providers.pm @@ -469,7 +469,7 @@ sub process_a_provider( $ ) { # # The logical interface name was specified # - $physical = get_physical $interface; + $physical = $interfaceref->{physical}; } else { # # A Physical name was specified @@ -478,7 +478,7 @@ sub process_a_provider( $ ) { # # Switch to the logical name unless it is a wildcard # - $interface = $interfaceref->{name} unless $interfaceref->{name} =~ /\+$/; + $interface = $interfaceref->{name} unless $interfaceref->{wildcard}; } my $gatewaycase = ''; diff --git a/Shorewall/Perl/Shorewall/Zones.pm b/Shorewall/Perl/Shorewall/Zones.pm index 0fb336554..78bd882a5 100644 --- a/Shorewall/Perl/Shorewall/Zones.pm +++ b/Shorewall/Perl/Shorewall/Zones.pm @@ -193,6 +193,7 @@ our %reservedName = ( all => 1, # physical => # base => # provider => +# wildcard => undef|1 # Wildcard Name # zones => { zone1 => 1, ... } # } # } @@ -1375,6 +1376,7 @@ sub process_interface( $$ ) { base => var_base( $physical ), zones => {}, origin => shortlineinfo(''), + wildcard => $wildcard, }; if ( $zone ) { @@ -1531,6 +1533,7 @@ sub known_interface($) number => $interfaceref->{number} , physical => $physical , base => var_base( $physical ) , + wildcard => $interfaceref->{wildcard} , zones => $interfaceref->{zones} , }; } @@ -1768,7 +1771,7 @@ sub find_interfaces_by_option1( $ ) { my $optionsref = $interfaceref->{options}; if ( $optionsref && defined $optionsref->{$option} ) { - $wild ||= ( $interfaceref->{physical} =~ /\+$/ ); + $wild ||= $interfaceref->{wildcard}; push @ints , $interface } }