Use the 'id' member in copy_and_edit_table().

- Also add prohibit and unreachable to the existing blackhole case.

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2013-03-26 07:38:13 -07:00
parent 792a19bf4b
commit e572d6ce50

View File

@ -220,8 +220,8 @@ sub copy_table( $$$ ) {
); );
} }
sub copy_and_edit_table( $$$$ ) { sub copy_and_edit_table( $$$$$ ) {
my ( $duplicate, $number, $copy, $realm) = @_; my ( $duplicate, $number, $id, $copy, $realm) = @_;
my $filter = $family == F_IPV6 ? q(fgrep -v ' cache ' | sed 's/ via :: / /' | ) : ''; my $filter = $family == F_IPV6 ? q(fgrep -v ' cache ' | sed 's/ via :: / /' | ) : '';
my %copied; my %copied;
@ -256,8 +256,8 @@ sub copy_and_edit_table( $$$$ ) {
emit ( ' case $net in', emit ( ' case $net in',
' default)', ' default)',
' ;;', ' ;;',
' blackhole)', ' blackhole|prohibit|unreachable)',
" run_ip route add table $number blackhole \$route $realm", " run_ip route add table $id \$net \$route $realm",
' ;;', ' ;;',
' *)', ' *)',
' case $(find_device $route) in', ' case $(find_device $route) in',
@ -267,12 +267,12 @@ sub copy_and_edit_table( $$$$ ) {
' 255.255.255.255*)', ' 255.255.255.255*)',
' ;;', ' ;;',
' *)', ' *)',
" run_ip route add table $number \$net \$route $realm", " run_ip route add table $id \$net \$route $realm",
' ;;', ' ;;',
' esac', ' esac',
); );
} else { } else {
emit ( " run_ip route add table $number \$net \$route $realm" ); emit ( " run_ip route add table $id \$net \$route $realm" );
} }
emit ( ' ;;', emit ( ' ;;',
@ -371,7 +371,6 @@ sub start_provider( $$$$$ ) {
emit $test; emit $test;
push_indent; push_indent;
if ( $number ) { if ( $number ) {
emit "qt ip -$family route flush table $id"; emit "qt ip -$family route flush table $id";
emit "echo \"\$IP -$family route flush table $id > /dev/null 2>&1\" > \${VARDIR}/undo_${table}_routing"; emit "echo \"\$IP -$family route flush table $id > /dev/null 2>&1\" > \${VARDIR}/undo_${table}_routing";
@ -776,7 +775,7 @@ CEOF
$copy = "$interface,$copy"; $copy = "$interface,$copy";
} }
copy_and_edit_table( $duplicate, $number ,$copy , $realm); copy_and_edit_table( $duplicate, $number, $id, $copy, $realm);
} }
} }