Final fix for Marcus Limosani's problem

This commit is contained in:
Tom Eastep 2009-12-28 15:05:54 -08:00
parent 738a6de11b
commit f568f3df9e

View File

@ -1710,7 +1710,7 @@ sub generate_matrix() {
my $sourcechainref; my $sourcechainref;
my $interfacematch = ''; my $interfacematch = '';
if ( use_forward_chain( $interface ) || $forward_jump_added{$interface} ) { if ( use_forward_chain( $interface ) ) {
$sourcechainref = $filter_table->{forward_chain $interface}; $sourcechainref = $filter_table->{forward_chain $interface};
add_jump $filter_table->{FORWARD} , $sourcechainref, 0 , match_source_dev( $interface ) unless $forward_jump_added{$interface}++; add_jump $filter_table->{FORWARD} , $sourcechainref, 0 , match_source_dev( $interface ) unless $forward_jump_added{$interface}++;
} else { } else {
@ -1822,7 +1822,7 @@ sub generate_matrix() {
my $outputref; my $outputref;
my $interfacematch = ''; my $interfacematch = '';
if ( use_output_chain( $interface ) || $output_jump_added{$interface} ) { if ( use_output_chain $interface ) {
$outputref = $filter_table->{output_chain $interface}; $outputref = $filter_table->{output_chain $interface};
add_jump $filter_table->{OUTPUT}, $outputref, 0, match_dest_dev( $interface ) unless $output_jump_added{$interface}++; add_jump $filter_table->{OUTPUT}, $outputref, 0, match_dest_dev( $interface ) unless $output_jump_added{$interface}++;
} else { } else {
@ -1871,7 +1871,7 @@ sub generate_matrix() {
my $inputchainref; my $inputchainref;
my $interfacematch = ''; my $interfacematch = '';
if ( use_input_chain( $interface ) || $input_jump_added{$interface} ) { if ( use_input_chain $interface ) {
$inputchainref = $filter_table->{input_chain $interface}; $inputchainref = $filter_table->{input_chain $interface};
add_jump $filter_table->{INPUT}, $inputchainref, 0, match_source_dev($interface) unless $input_jump_added{$interface}++; add_jump $filter_table->{INPUT}, $inputchainref, 0, match_source_dev($interface) unless $input_jump_added{$interface}++;
} else { } else {
@ -2007,7 +2007,7 @@ sub generate_matrix() {
my $match_source_dev = ''; my $match_source_dev = '';
my $forwardchainref = $filter_table->{forward_chain $interface}; my $forwardchainref = $filter_table->{forward_chain $interface};
if ( use_forward_chain $interface || ( @{$forwardchainref->{rules} } && ! $chainref ) ) { if ( use_forward_chain( $interface ) || $forward_jump_added{$interface} || ( @{$forwardchainref->{rules} } && ! $chainref ) ) {
# #
# Either we must use the interface's forwarding chain or that chain has rules and we have nowhere to move them # Either we must use the interface's forwarding chain or that chain has rules and we have nowhere to move them
# #