forked from extern/shorewall_code
Fix exclusion corner case in /etc/shorewall/masq processing
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@6510 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
parent
3960e7b105
commit
41c40edcc7
@ -169,6 +169,7 @@ sub setup_one_masq($$$$$$$)
|
||||
$rule .= do_test( $mark, 0xFF) if $mark ne '-';
|
||||
|
||||
my $detectaddress = 0;
|
||||
my $exceptionrule = '';
|
||||
#
|
||||
# Parse the ADDRESSES column
|
||||
#
|
||||
@ -202,9 +203,11 @@ sub setup_one_masq($$$$$$$)
|
||||
if ( $addr =~ /^.*\..*\..*\./ ) {
|
||||
$target = '-j SNAT ';
|
||||
$addrlist .= "--to-source $addr ";
|
||||
$exceptionrule = do_proto( $proto, '', '' ) if $addr =~ /:/;
|
||||
} else {
|
||||
$addr =~ s/^://;
|
||||
$addrlist .= "--to-ports $addr ";
|
||||
$exceptionrule = do_proto( $proto, '', '' );
|
||||
}
|
||||
}
|
||||
|
||||
@ -216,7 +219,16 @@ sub setup_one_masq($$$$$$$)
|
||||
#
|
||||
# And Generate the Rule(s)
|
||||
#
|
||||
expand_rule $chainref , POSTROUTE_RESTRICT , $rule, $networks, $destnets, '', $target, '', '' , '';
|
||||
expand_rule( $chainref ,
|
||||
POSTROUTE_RESTRICT ,
|
||||
$rule ,
|
||||
$networks ,
|
||||
$destnets ,
|
||||
'' ,
|
||||
$target ,
|
||||
'' ,
|
||||
'' ,
|
||||
$exceptionrule );
|
||||
|
||||
if ( $detectaddress ) {
|
||||
pop_cmd_mode( $chainref );
|
||||
|
Loading…
Reference in New Issue
Block a user