Please try this patch:

patch /usr/share/shorewall/Shorewall/Providers.pm < mac-source.diff

-Tom
-- 
Tom Eastep        \ When I die, I want to go like my Grandfather who
Shoreline,         \ died peacefully in his sleep. Not screaming like
Washington, USA     \ all of the passengers in his car
http://shorewall.net \________________________________________________
diff --git a/4.2/Shorewall-perl/Shorewall/Providers.pm b/4.2/Shorewall-perl/Shorewall/Providers.pm
index d2f4874..69afb68 100644
--- a/4.2/Shorewall-perl/Shorewall/Providers.pm
+++ b/4.2/Shorewall-perl/Shorewall/Providers.pm
@@ -108,8 +108,17 @@ sub setup_route_marking() {
     for my $providerref ( @routemarked_providers ) {
 	my $interface = $providerref->{interface};
 	my $base      = uc chain_base $interface;
+	my $variable  = $providerref->{mac};
 
-	add_command( $chainref, qq(if [ -n "\$${base}_IS_UP" ]; then) ), incr_cmd_level( $chainref ) if $providerref->{optional};
+	if ( $providerref->{optional} ) {
+	    if ( $variable ) {
+		add_command( $chainref, qq(if [ -n "\$${base}_IS_UP" -a -n "$variable" ]; then) );
+	    } else {
+		add_command( $chainref, qq(if [ -n "\$${base}_IS_UP" ]; then) );
+	    }
+
+	    incr_cmd_level( $chainref );
+	}
 
 	unless ( $marked_interfaces{$interface} ) {
 	    add_rule $mangle_table->{PREROUTING} , "-i $interface -m mark --mark 0/$mask -j routemark";

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Shorewall-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/shorewall-users

Reply via email to