mirror of
https://gitlab.com/shorewall/code.git
synced 2025-06-14 13:47:07 +02:00
Expand variables in shorewallrc
Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
217d5e636c
commit
fc4aaa97c6
@ -2096,7 +2096,7 @@ sub set_action_param( $$ ) {
|
|||||||
#
|
#
|
||||||
# Expand Shell Variables in the passed buffer using %params and @actparms
|
# Expand Shell Variables in the passed buffer using %params and @actparms
|
||||||
#
|
#
|
||||||
sub expand_variables( \$ ) {
|
sub expand_variables( \$;$ ) {
|
||||||
my ( $lineref, $count ) = ( $_[0], 0 );
|
my ( $lineref, $count ) = ( $_[0], 0 );
|
||||||
# $1 $2 $3 - $4
|
# $1 $2 $3 - $4
|
||||||
while ( $$lineref =~ m( ^(.*?) \$({)? (\w+) (?(2)}) (.*)$ )x ) {
|
while ( $$lineref =~ m( ^(.*?) \$({)? (\w+) (?(2)}) (.*)$ )x ) {
|
||||||
@ -2110,6 +2110,8 @@ sub expand_variables( \$ ) {
|
|||||||
$val = $actparms[$var];
|
$val = $actparms[$var];
|
||||||
} elsif ( exists $params{$var} ) {
|
} elsif ( exists $params{$var} ) {
|
||||||
$val = $params{$var};
|
$val = $params{$var};
|
||||||
|
} elsif ( $_[1] && exists $shorewallrc{$var} ) {
|
||||||
|
$val = $shorewallrc{$var}
|
||||||
} else {
|
} else {
|
||||||
fatal_error "Undefined shell variable (\$$var)" unless exists $config{$var};
|
fatal_error "Undefined shell variable (\$$var)" unless exists $config{$var};
|
||||||
$val = $config{$var};
|
$val = $config{$var};
|
||||||
@ -2278,11 +2280,14 @@ sub process_shorewallrc() {
|
|||||||
while ( read_a_line1 ) {
|
while ( read_a_line1 ) {
|
||||||
if ( $currentline =~ /^([a-zA-Z]\w*)=(.*)$/ ) {
|
if ( $currentline =~ /^([a-zA-Z]\w*)=(.*)$/ ) {
|
||||||
my ($var, $val) = ($1, $2);
|
my ($var, $val) = ($1, $2);
|
||||||
$shorewallrc{$var} = $val =~ /^\"([^\"]*)\"$/ ? $1 : $val;
|
$val = $1 if $val =~ /^\"([^\"]*)\"$/;
|
||||||
|
expand_variables( $val, 1 ) if supplied $val;
|
||||||
|
$shorewallrc{$var} = $val;
|
||||||
} else {
|
} else {
|
||||||
fatal_error "Unrecognized shorewallrc entry";
|
fatal_error "Unrecognized shorewallrc entry";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user