Update trunk

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@8142 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep 2008-02-03 18:52:06 +00:00
parent 8225910d63
commit 5e8f0c120a

View File

@ -860,11 +860,12 @@ sub process_macro ( $$$$$$$$$$$$$ ) {
fatal_error "Invalid Action ($mtarget) in macro" unless $actiontype & ( ACTION + STANDARD + NATRULE + MACRO ); fatal_error "Invalid Action ($mtarget) in macro" unless $actiontype & ( ACTION + STANDARD + NATRULE + MACRO );
if ( $msource ) { if ( $msource ) {
if ( ( $msource eq '-' ) || ( $msource eq 'SOURCE' ) ) { if ( $msource eq '-' ) {
$msource = $source || ''; $msource = $source || '';
} elsif ( $msource eq 'DEST' ) { } elsif ( $msource =~ s/^DEST:?// ) {
$msource = $dest || ''; $msource = merge_macro_source_dest $msource, $dest;
} else { } else {
$msource =~ s/^SOURCE:?//;
$msource = merge_macro_source_dest $msource, $source; $msource = merge_macro_source_dest $msource, $source;
} }
} else { } else {
@ -872,11 +873,12 @@ sub process_macro ( $$$$$$$$$$$$$ ) {
} }
if ( $mdest ) { if ( $mdest ) {
if ( ( $mdest eq '-' ) || ( $mdest eq 'DEST' ) ) { if ( $mdest eq '-' ) {
$mdest = $dest || ''; $mdest = $dest || '';
} elsif ( $mdest eq 'SOURCE' ) { } elsif ( $mdest =~ s/^SOURCE:?// ) {
$mdest = $source || ''; $mdest = merge_macro_source_dest $mdest , $source;
} else { } else {
$mdest =~ s/DEST:?//;
$mdest = merge_macro_source_dest $mdest, $dest; $mdest = merge_macro_source_dest $mdest, $dest;
} }
} else { } else {
@ -1862,6 +1864,8 @@ sub generate_matrix() {
addnatjump 'POSTROUTING' , snat_chain( $interface ), match_dest_dev( $interface ); addnatjump 'POSTROUTING' , snat_chain( $interface ), match_dest_dev( $interface );
} }
addnatjump 'PREROUTING', 'dnat', '';
if ( $config{DYNAMIC_ZONES} ) { if ( $config{DYNAMIC_ZONES} ) {
for my $interface ( @interfaces ) { for my $interface ( @interfaces ) {
addnatjump 'PREROUTING' , dynamic_in( $interface ), match_source_dev( $interface ); addnatjump 'PREROUTING' , dynamic_in( $interface ), match_source_dev( $interface );