forked from extern/shorewall_code
Allow empty BP zones -- first step toward dynamic BP zones
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@6604 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
parent
0c8988a67f
commit
91490ebc4a
@ -243,7 +243,6 @@ sub validate_interfaces_file( $ )
|
||||
require_capability( 'KLUDGEFREE', 'Bridge Ports', '');
|
||||
fatal_error "Duplicate Interface ($port)" if $interfaces{$port};
|
||||
fatal_error "$interface is not a defined bridge" unless $interfaces{$interface} && $interfaces{$interface}{options}{bridge};
|
||||
fatal_error "Invalid Interface Name ($interface:$port)" unless $port =~ /^[\w.@%-]+\+?$/;
|
||||
fatal_error "Bridge Ports may only be associated with 'bport' zones" if $zone && $zoneref->{type} ne 'bport4';
|
||||
|
||||
if ( $zone ) {
|
||||
@ -253,7 +252,13 @@ sub validate_interfaces_file( $ )
|
||||
$zoneref->{bridge} = $interface;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fatal_error "Bridge Ports may not have options" if $options && $options ne '-';
|
||||
|
||||
next if $port eq '';
|
||||
|
||||
fatal_error "Invalid Interface Name ($interface:$port)" unless $port =~ /^[\w.@%-]+\+?$/;
|
||||
|
||||
$interfaces{$port}{bridge} = $bridge = $interface;
|
||||
$interface = $port;
|
||||
} else {
|
||||
@ -285,7 +290,6 @@ sub validate_interfaces_file( $ )
|
||||
my %options;
|
||||
|
||||
if ( $options ) {
|
||||
fatal_error "Bridge Ports may not have options" if defined $port;
|
||||
|
||||
for my $option (split ',', $options ) {
|
||||
next if $option eq '-';
|
||||
@ -331,7 +335,7 @@ sub validate_interfaces_file( $ )
|
||||
fatal_error "Bridges may not have wildcard names" if $wildcard;
|
||||
push @bridges, $interface;
|
||||
}
|
||||
} elsif ( defined $port ) {
|
||||
} elsif ( $port ) {
|
||||
$options{port} = 1;
|
||||
}
|
||||
|
||||
|
@ -338,7 +338,11 @@ sub zone_report()
|
||||
}
|
||||
}
|
||||
|
||||
warning_message "*** $zone is an EMPTY ZONE ***" unless $printed || $type eq 'firewall';
|
||||
unless ( $printed ) {
|
||||
fatal_error "No bridge has been associated with zone $zone" if $type eq 'bport4' && ! $zoneref->{bridge};
|
||||
warning_message "*** $zone is an EMPTY ZONE ***" unless $type eq 'firewall';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -353,6 +357,8 @@ sub dump_zone_contents()
|
||||
my $exclusions = $zoneref->{exclusions};
|
||||
my $entry = "$zone $type";
|
||||
|
||||
$entry .= ":$zoneref->{bridge}" if $type eq 'bport4';
|
||||
|
||||
if ( $hostref ) {
|
||||
for my $type ( sort keys %$hostref ) {
|
||||
my $interfaceref = $hostref->{$type};
|
||||
|
Loading…
Reference in New Issue
Block a user