forked from extern/shorewall_code
Make wildcard interfaces play nice with optimization level 4
Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
a40d2996ba
commit
d2d99a060c
@ -1440,8 +1440,12 @@ sub replace_references1( $$$ ) {
|
|||||||
#
|
#
|
||||||
for my $fromref ( map $chain_table{$table}{$_} , keys %{$chainref->{references}} ) {
|
for my $fromref ( map $chain_table{$table}{$_} , keys %{$chainref->{references}} ) {
|
||||||
if ( $fromref->{referenced} ) {
|
if ( $fromref->{referenced} ) {
|
||||||
|
my $fromname = $fromref->{name};
|
||||||
|
|
||||||
|
$fromname =~ s/\+/\\+/;
|
||||||
|
|
||||||
for ( @{$fromref->{rules}} ) {
|
for ( @{$fromref->{rules}} ) {
|
||||||
if ( defined && /^-A $name .*-[jg] $chainref->{name}\b/ ) {
|
if ( defined && /^-A $fromname .*-[jg] $name\b/ ) {
|
||||||
#
|
#
|
||||||
# Prevent multiple '-p' matches
|
# Prevent multiple '-p' matches
|
||||||
#
|
#
|
||||||
@ -1459,8 +1463,12 @@ sub replace_references1( $$$ ) {
|
|||||||
#
|
#
|
||||||
for my $fromref ( map $chain_table{$table}{$_} , keys %{$chainref->{references}} ) {
|
for my $fromref ( map $chain_table{$table}{$_} , keys %{$chainref->{references}} ) {
|
||||||
if ( $fromref->{referenced} ) {
|
if ( $fromref->{referenced} ) {
|
||||||
|
my $fromname = $fromref->{name};
|
||||||
|
|
||||||
|
$fromname =~ s/\+/\\+/;
|
||||||
|
|
||||||
for ( @{$fromref->{rules}} ) {
|
for ( @{$fromref->{rules}} ) {
|
||||||
if ( defined && /^-A $name .*-[jg] $chainref->{name}\b/ ) {
|
if ( defined && /^-A $fromname .*-[jg] $name\b/ ) {
|
||||||
#
|
#
|
||||||
# Prevent multiple '-p' matches
|
# Prevent multiple '-p' matches
|
||||||
#
|
#
|
||||||
@ -1593,7 +1601,11 @@ sub optimize_ruleset() {
|
|||||||
#
|
#
|
||||||
# Chain has a single non-nil rule which is in $firstrule
|
# Chain has a single non-nil rule which is in $firstrule
|
||||||
#
|
#
|
||||||
if ( $firstrule =~ /^-A $chainref->{name} -[jg] (.*)$/ ) {
|
my $name = $chainref->{name};
|
||||||
|
|
||||||
|
$name =~ s/\+/\\+/;
|
||||||
|
|
||||||
|
if ( $firstrule =~ /^-A $name -[jg] (.*)$/ ) {
|
||||||
#
|
#
|
||||||
# Easy case -- the rule is a simple jump
|
# Easy case -- the rule is a simple jump
|
||||||
#
|
#
|
||||||
@ -1620,7 +1632,7 @@ sub optimize_ruleset() {
|
|||||||
replace_references $chainref, $1;
|
replace_references $chainref, $1;
|
||||||
$progress = 1;
|
$progress = 1;
|
||||||
}
|
}
|
||||||
} elsif ( $firstrule =~ /-A $chainref->{name}( +.+) -[jg] (.*)$/ ) {
|
} elsif ( $firstrule =~ /-A $name( +.+) -[jg] (.*)$/ ) {
|
||||||
#
|
#
|
||||||
# Not so easy -- the rule contains matches
|
# Not so easy -- the rule contains matches
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user