Improve handling of ipsec zones

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@6273 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep 2007-05-07 22:12:42 +00:00
parent fac8d4cd25
commit ab7c4200b1
2 changed files with 15 additions and 3 deletions

View File

@ -125,11 +125,11 @@ sub validate_hosts_file()
progress_message " Host \"$line\" validated";
}
$capabilities{POLICY_MATCH} = '' unless $ipsec or $zones{ipsec};
$capabilities{POLICY_MATCH} = '' unless $ipsec || ipseczones;
}
#
# Returns a reference to a array of host entries. Each entry is a
# reference to an array containing ( interface , group type {ipsec|none} , network );
# reference to an array containing ( interface , polciy match type {ipsec|none} , network );
#
sub find_hosts_by_option( $ ) {
my $option = $_[0];
@ -141,7 +141,7 @@ sub find_hosts_by_option( $ ) {
for my $host ( @{$arrayref} ) {
if ( $host->{options}{$option} ) {
for my $net ( @{$host->{hosts}} ) {
push @hosts, [ $interface, $type eq 'ipsec4' ? 'ipsec' : 'none' , $net ];
push @hosts, [ $interface, $host->{ipsec} , $net ];
}
}
}

View File

@ -39,6 +39,7 @@ our @EXPORT = qw( NOTHING
determine_zones
zone_report
dump_zone_contents
ipseczones
@zones
%zones
@ -282,6 +283,17 @@ sub determine_zones()
}
}
#
# Return true of we have any ipsec zones
#
sub ipseczones() {
for my $zoneref ( values %zones ) {
return 1 if $zoneref->{type} eq 'ipsec4';
}
0;
}
#
# Report about zones.
#