Fix conditional route marking

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@8699 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep 2008-09-07 20:17:08 +00:00
parent edee4527d3
commit ead2773840
3 changed files with 7 additions and 2 deletions

View File

@ -2,6 +2,8 @@ Changes in 4.2.0-RC2
1) Don't clear 'balance' when 'loose' and USE_DEFAULT_RT. 1) Don't clear 'balance' when 'loose' and USE_DEFAULT_RT.
2) Fix conditional track marking.
Changes in 4.2.0-RC1 Changes in 4.2.0-RC1
1) Add NONAT option to entries in /etc/shorewall/masq. 1) Add NONAT option to entries in /etc/shorewall/masq.

View File

@ -78,13 +78,16 @@ Migration Issues.
7) DYNAMIC_ZONES=Yes is no longer supported by Shorewall-perl. Use 7) DYNAMIC_ZONES=Yes is no longer supported by Shorewall-perl. Use
ipset-based zones instead. ipset-based zones instead.
Problems corrected in Shorewall 4.2.0 RC 2. Problems corrected in Shorewall-perl 4.2.0 RC 2.
1) Shorewall-perl was incorrectly ignoring the 'balance' option in 1) Shorewall-perl was incorrectly ignoring the 'balance' option in
/etc/shorewall/providers when 'loose' was specified after 'balance' /etc/shorewall/providers when 'loose' was specified after 'balance'
and USE_DEFAULT_RT=Yes in shorewall.conf. 'balance' is still the and USE_DEFAULT_RT=Yes in shorewall.conf. 'balance' is still the
default if 'loose' is not specified. default if 'loose' is not specified.
2) Route marking was attempted for optional interfaces that were not
up, causing 'shorewall start' ('shorewall-lite start') to fail.
Other Changes in Shoreall 4.2.0 RC 2 Other Changes in Shoreall 4.2.0 RC 2
1) USE_DEFAULT_RT is no longer marked 'experimental'. 1) USE_DEFAULT_RT is no longer marked 'experimental'.

View File

@ -102,7 +102,7 @@ sub setup_route_marking() {
my $interface = $providerref->{interface}; my $interface = $providerref->{interface};
my $base = uc chain_base $interface; my $base = uc chain_base $interface;
add_command( $chainref, qq(if [ -n "${base}_IS_UP" ]; then) ), incr_cmd_level( $chainref ) if $providerref->{optional}; add_command( $chainref, qq(if [ -n "\$${base}_IS_UP" ]; then) ), incr_cmd_level( $chainref ) if $providerref->{optional};
unless ( $marked_interfaces{$interface} ) { unless ( $marked_interfaces{$interface} ) {
add_rule $mangle_table->{PREROUTING} , "-i $interface -m mark --mark 0/$mask -j routemark"; add_rule $mangle_table->{PREROUTING} , "-i $interface -m mark --mark 0/$mask -j routemark";