forked from extern/shorewall_code
Suppress redundant tests for provider availability in route rules processing
This commit is contained in:
parent
31f01fe765
commit
2a910ebddf
@ -534,9 +534,19 @@ sub add_a_provider( ) {
|
|||||||
progress_message " Provider \"$currentline\" $done";
|
progress_message " Provider \"$currentline\" $done";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub finish_if_statement() {
|
||||||
|
if ( our $last_base ) {
|
||||||
|
pop_indent;
|
||||||
|
emit ( "fi\n" );
|
||||||
|
$last_base = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub add_an_rtrule( ) {
|
sub add_an_rtrule( ) {
|
||||||
my ( $source, $dest, $provider, $priority ) = split_line 4, 4, 'route_rules file';
|
my ( $source, $dest, $provider, $priority ) = split_line 4, 4, 'route_rules file';
|
||||||
|
|
||||||
|
our $last_base;
|
||||||
|
|
||||||
unless ( $providers{$provider} ) {
|
unless ( $providers{$provider} ) {
|
||||||
my $found = 0;
|
my $found = 0;
|
||||||
|
|
||||||
@ -601,14 +611,22 @@ sub add_an_rtrule( ) {
|
|||||||
|
|
||||||
if ( $optional ) {
|
if ( $optional ) {
|
||||||
my $base = uc chain_base( $providers{$provider}{physical} );
|
my $base = uc chain_base( $providers{$provider}{physical} );
|
||||||
|
|
||||||
|
finish_if_statement if $base ne $last_base;
|
||||||
|
|
||||||
|
unless ( $last_base ) {
|
||||||
emit ( '', qq(if [ -n "\$${base}_IS_USABLE" ]; then) );
|
emit ( '', qq(if [ -n "\$${base}_IS_USABLE" ]; then) );
|
||||||
push_indent;
|
push_indent;
|
||||||
|
$last_base = $base;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
finish_if_statement;
|
||||||
}
|
}
|
||||||
|
|
||||||
emit ( "run_ip rule add $source $dest $priority table $number",
|
emit ( "run_ip rule add $source $dest $priority table $number",
|
||||||
"echo \"qt \$IP -$family rule del $source $dest $priority\" >> \${VARDIR}/undo_routing" );
|
"echo \"qt \$IP -$family rule del $source $dest $priority\" >> \${VARDIR}/undo_routing" );
|
||||||
|
|
||||||
pop_indent, emit ( "fi\n" ) if $optional;
|
finish_if_statement if $optional && $config{DELETE_THEN_ADD};
|
||||||
|
|
||||||
progress_message " Routing rule \"$currentline\" $done";
|
progress_message " Routing rule \"$currentline\" $done";
|
||||||
}
|
}
|
||||||
@ -743,12 +761,15 @@ sub setup_providers() {
|
|||||||
my $fn = open_file 'route_rules';
|
my $fn = open_file 'route_rules';
|
||||||
|
|
||||||
if ( $fn ) {
|
if ( $fn ) {
|
||||||
|
our $last_base = '';
|
||||||
|
|
||||||
first_entry "$doing $fn...";
|
first_entry "$doing $fn...";
|
||||||
|
|
||||||
emit '';
|
emit '';
|
||||||
|
|
||||||
add_an_rtrule while read_a_line;
|
add_an_rtrule while read_a_line;
|
||||||
|
|
||||||
|
finish_if_statement;
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_null_routing if $config{NULL_ROUTE_RFC1918};
|
setup_null_routing if $config{NULL_ROUTE_RFC1918};
|
||||||
|
@ -18,6 +18,8 @@ Changes in Shorewall 4.4.4
|
|||||||
|
|
||||||
9) Fix route_rule suppression for down provider.
|
9) Fix route_rule suppression for down provider.
|
||||||
|
|
||||||
|
10) Suppress redundant tests for provider availability in route rules processing.
|
||||||
|
|
||||||
Changes in Shorewall 4.4.3
|
Changes in Shorewall 4.4.3
|
||||||
|
|
||||||
1) Move Debian INITLOG initialization to /etc/default/shorewall
|
1) Move Debian INITLOG initialization to /etc/default/shorewall
|
||||||
|
Loading…
Reference in New Issue
Block a user