mirror of
https://gitlab.com/shorewall/code.git
synced 2025-06-01 07:25:42 +02:00
More code rationalization
This commit is contained in:
parent
2c25deeccf
commit
ad6b47d3bf
@ -153,64 +153,10 @@ sub print_policy($$$$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub validate_policy()
|
sub process_a_policy() {
|
||||||
{
|
|
||||||
my %validpolicies = (
|
|
||||||
ACCEPT => undef,
|
|
||||||
REJECT => undef,
|
|
||||||
DROP => undef,
|
|
||||||
CONTINUE => undef,
|
|
||||||
QUEUE => undef,
|
|
||||||
NFQUEUE => undef,
|
|
||||||
NONE => undef
|
|
||||||
);
|
|
||||||
|
|
||||||
my %map = ( DROP_DEFAULT => 'DROP' ,
|
our %validpolicies;
|
||||||
REJECT_DEFAULT => 'REJECT' ,
|
our @zonelist;
|
||||||
ACCEPT_DEFAULT => 'ACCEPT' ,
|
|
||||||
QUEUE_DEFAULT => 'QUEUE' ,
|
|
||||||
NFQUEUE_DEFAULT => 'NFQUEUE' );
|
|
||||||
|
|
||||||
my $zone;
|
|
||||||
my @zonelist = $config{EXPAND_POLICIES} ? all_zones : ( all_zones, 'all' );
|
|
||||||
|
|
||||||
for my $option qw/DROP_DEFAULT REJECT_DEFAULT ACCEPT_DEFAULT QUEUE_DEFAULT NFQUEUE_DEFAULT/ {
|
|
||||||
my $action = $config{$option};
|
|
||||||
next if $action eq 'none';
|
|
||||||
my $actiontype = $targets{$action};
|
|
||||||
|
|
||||||
if ( defined $actiontype ) {
|
|
||||||
fatal_error "Invalid setting ($action) for $option" unless $actiontype & ACTION;
|
|
||||||
} else {
|
|
||||||
fatal_error "Default Action $option=$action not found";
|
|
||||||
}
|
|
||||||
|
|
||||||
unless ( $usedactions{$action} ) {
|
|
||||||
$usedactions{$action} = 1;
|
|
||||||
createactionchain $action;
|
|
||||||
}
|
|
||||||
|
|
||||||
$default_actions{$map{$option}} = $action;
|
|
||||||
}
|
|
||||||
|
|
||||||
for $zone ( all_zones ) {
|
|
||||||
push @policy_chains, ( new_policy_chain $zone, $zone, 'ACCEPT', OPTIONAL );
|
|
||||||
|
|
||||||
if ( $config{IMPLICIT_CONTINUE} && ( @{find_zone( $zone )->{parents}} ) ) {
|
|
||||||
for my $zone1 ( all_zones ) {
|
|
||||||
unless( $zone eq $zone1 ) {
|
|
||||||
add_or_modify_policy_chain( $zone, $zone1 );
|
|
||||||
add_or_modify_policy_chain( $zone1, $zone );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
my $fn = open_file 'policy';
|
|
||||||
|
|
||||||
first_entry "$doing $fn...";
|
|
||||||
|
|
||||||
while ( read_a_line ) {
|
|
||||||
|
|
||||||
my ( $client, $server, $originalpolicy, $loglevel, $synparams, $connlimit ) = split_line 3, 6, 'policy file';
|
my ( $client, $server, $originalpolicy, $loglevel, $synparams, $connlimit ) = split_line 3, 6, 'policy file';
|
||||||
|
|
||||||
@ -335,8 +281,67 @@ sub validate_policy()
|
|||||||
} else {
|
} else {
|
||||||
print_policy $client, $server, $policy, $chain;
|
print_policy $client, $server, $policy, $chain;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub validate_policy()
|
||||||
|
{
|
||||||
|
our %validpolicies = (
|
||||||
|
ACCEPT => undef,
|
||||||
|
REJECT => undef,
|
||||||
|
DROP => undef,
|
||||||
|
CONTINUE => undef,
|
||||||
|
QUEUE => undef,
|
||||||
|
NFQUEUE => undef,
|
||||||
|
NONE => undef
|
||||||
|
);
|
||||||
|
|
||||||
|
our %map = ( DROP_DEFAULT => 'DROP' ,
|
||||||
|
REJECT_DEFAULT => 'REJECT' ,
|
||||||
|
ACCEPT_DEFAULT => 'ACCEPT' ,
|
||||||
|
QUEUE_DEFAULT => 'QUEUE' ,
|
||||||
|
NFQUEUE_DEFAULT => 'NFQUEUE' );
|
||||||
|
|
||||||
|
my $zone;
|
||||||
|
our @zonelist = $config{EXPAND_POLICIES} ? all_zones : ( all_zones, 'all' );
|
||||||
|
|
||||||
|
for my $option qw/DROP_DEFAULT REJECT_DEFAULT ACCEPT_DEFAULT QUEUE_DEFAULT NFQUEUE_DEFAULT/ {
|
||||||
|
my $action = $config{$option};
|
||||||
|
next if $action eq 'none';
|
||||||
|
my $actiontype = $targets{$action};
|
||||||
|
|
||||||
|
if ( defined $actiontype ) {
|
||||||
|
fatal_error "Invalid setting ($action) for $option" unless $actiontype & ACTION;
|
||||||
|
} else {
|
||||||
|
fatal_error "Default Action $option=$action not found";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unless ( $usedactions{$action} ) {
|
||||||
|
$usedactions{$action} = 1;
|
||||||
|
createactionchain $action;
|
||||||
|
}
|
||||||
|
|
||||||
|
$default_actions{$map{$option}} = $action;
|
||||||
|
}
|
||||||
|
|
||||||
|
for $zone ( all_zones ) {
|
||||||
|
push @policy_chains, ( new_policy_chain $zone, $zone, 'ACCEPT', OPTIONAL );
|
||||||
|
|
||||||
|
if ( $config{IMPLICIT_CONTINUE} && ( @{find_zone( $zone )->{parents}} ) ) {
|
||||||
|
for my $zone1 ( all_zones ) {
|
||||||
|
unless( $zone eq $zone1 ) {
|
||||||
|
add_or_modify_policy_chain( $zone, $zone1 );
|
||||||
|
add_or_modify_policy_chain( $zone1, $zone );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
my $fn = open_file 'policy';
|
||||||
|
|
||||||
|
first_entry "$doing $fn...";
|
||||||
|
|
||||||
|
process_a_policy while read_a_line;
|
||||||
|
|
||||||
for $zone ( all_zones ) {
|
for $zone ( all_zones ) {
|
||||||
for my $zone1 ( all_zones ) {
|
for my $zone1 ( all_zones ) {
|
||||||
fatal_error "No policy defined from zone $zone to zone $zone1" unless $filter_table->{"${zone}2${zone1}"}{policy};
|
fatal_error "No policy defined from zone $zone to zone $zone1" unless $filter_table->{"${zone}2${zone1}"}{policy};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user