From 398c843643ae4c3a643608f3e125e05ca788f3cb Mon Sep 17 00:00:00 2001 From: Tom Eastep Date: Fri, 23 Mar 2012 15:40:25 -0700 Subject: [PATCH] Concatenate match options when not KLUDGEFREE Signed-off-by: Tom Eastep --- Shorewall/Perl/Shorewall/Chains.pm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index 661b27c34..c4f58b273 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -724,17 +724,19 @@ sub set_rule_option( $$$ ) { assert( defined( my $value1 = $ruleref->{$option} ) ); if ( $opttype == MATCH ) { - assert( $globals{KLUDGEFREE} ); + if ( $globals{KLUDGEFREE} ) { + unless ( reftype $value1 ) { + unless ( reftype $value ) { + return if $value1 eq $value; + } - unless ( reftype $value1 ) { - unless ( reftype $value ) { - return if $value1 eq $value; + $ruleref->{$option} = [ $ruleref->{$option} ]; } - $ruleref->{$option} = [ $ruleref->{$option} ]; + push @{$ruleref->{$option}}, ( reftype $value ? @$value : $value ); + } else { + $ruleref->{$option} = join(' ', $value1, $value ); } - - push @{$ruleref->{$option}}, ( reftype $value ? @$value : $value ); } elsif ( $opttype == EXCLUSIVE ) { $ruleref->{$option} .= ",$value"; } elsif ( $opttype == UNIQUE ) {