diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index 096bb59e0..c06474a70 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -1196,12 +1196,15 @@ sub compatible( $$ ) { } # # Don't combine chains where each specifies - # '-m policy' - # ( --multiport and ( --dport or --sport or -m multiport ) ) + # -m policy + # or when one specifies + # -m multiport + # and the other specifies + # --dport or --sport or -m multiport # return ! ( $ref1->{policy} && $ref2->{policy} || ( ( $ref1->{multiport} && ( $ref2->{dport} || $ref2->{sport} || $ref2->{multiport} ) ) || - ( $ref2->{multiport} && ( $ref1->{dport} || $ref1->{sport} || $ref1->{multiport} ) ) ) ); + ( $ref2->{multiport} && ( $ref1->{dport} || $ref1->{sport} ) ) ) ); } #