diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index 69f06d637..52e6e8d82 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -1195,9 +1195,13 @@ sub compatible( $$ ) { } } # - # Don't combine chains where each specifies '-m policy' + # Don't combine chains where each specifies + # '-m policy' + # ( --dport or --sport or -m multiport ) # - return ! ( $ref1->{policy} && $ref2->{policy} ); + return ! ( $ref1->{policy} && $ref2->{policy} || + ( ( $ref1->{multiport} && ( $ref2->{dport} || $ref2->{sport} || $ref2->{multiport} ) ) || + ( $ref2->{multiport} && ( $ref1->{dport} || $ref1->{sport} || $ref1->{multiport} ) ) ) ); } #