Don't require a parameter with '&'

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2012-11-18 15:45:58 -08:00
parent 57e913d86e
commit 0db7b6c58a

View File

@ -1535,7 +1535,7 @@ sub use_policy_action( $ ) {
#
# Expand a macro rule from the rules file
#
sub process_macro ( $$$$$$$$$$$$$$$$$$$) {
sub process_macro ($$$$$$$$$$$$$$$$$$$) {
my ($macro, $chainref, $target, $param, $source, $dest, $proto, $ports, $sports, $origdest, $rate, $user, $mark, $connlimit, $time, $headers, $condition, $helper, $wildcard ) = @_;
my $nocomment = no_comment;
@ -1589,8 +1589,11 @@ sub process_macro ( $$$$$$$$$$$$$$$$$$$) {
}
if ( $mtarget =~ s/&$// ) {
fatal_error "$mtarget& requires a parameter to be supplied in macro invocation" unless $param ne '';
$mtarget = "$mtarget:$macro($param)";
if ( supplied $param ) {
$mtarget = "$mtarget:$macro($param)";
} else {
$mtarget = "$mtarget:$macro";
}
}
my $action = isolate_basic_target $mtarget;