mirror of
https://gitlab.com/shorewall/code.git
synced 2024-12-23 06:38:53 +01:00
Expand variables in .conf except when upgrading
Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
76aef6cb04
commit
b13014c9ab
@ -5445,9 +5445,11 @@ sub process_shorewall_conf( $$ ) {
|
|||||||
# Don't expand shell variables or allow embedded scripting
|
# Don't expand shell variables or allow embedded scripting
|
||||||
#
|
#
|
||||||
while ( read_a_line( STRIP_COMMENTS | SUPPRESS_WHITESPACE | CHECK_GUNK ) ) {
|
while ( read_a_line( STRIP_COMMENTS | SUPPRESS_WHITESPACE | CHECK_GUNK ) ) {
|
||||||
if ( $currentline =~ /^\s*([a-zA-Z]\w*)=(.*?)\s*$/ ) {
|
if ( $currentline =~ /^\s*([a-zA-Z]\w*)=(.*)$/ ) {
|
||||||
my ($var, $val) = ($1, $2);
|
my ($var, $val) = ($1, $2);
|
||||||
|
|
||||||
|
expand_variables( $val ) unless $update || $val =~ /^'.*'$/;
|
||||||
|
|
||||||
if ( exists $config{$var} ) {
|
if ( exists $config{$var} ) {
|
||||||
if ( $eliminated{$var} && ! $update ) {
|
if ( $eliminated{$var} && ! $update ) {
|
||||||
fatal_error "The $var configuration option has been superceded - please run '$product update'";
|
fatal_error "The $var configuration option has been superceded - please run '$product update'";
|
||||||
@ -5464,6 +5466,7 @@ sub process_shorewall_conf( $$ ) {
|
|||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$config{$var} = ( $val =~ /\"([^\"]*)\"$/ ? $1 : $val );
|
$config{$var} = ( $val =~ /\"([^\"]*)\"$/ ? $1 : $val );
|
||||||
|
|
||||||
warning_message "Option $var=$val is deprecated"
|
warning_message "Option $var=$val is deprecated"
|
||||||
@ -5484,24 +5487,26 @@ sub process_shorewall_conf( $$ ) {
|
|||||||
#
|
#
|
||||||
# Now update the config file if asked
|
# Now update the config file if asked
|
||||||
#
|
#
|
||||||
update_config_file( $annotate ) if $update;
|
if ( $update ) {
|
||||||
#
|
update_config_file( $annotate );
|
||||||
# Config file update requires that the option values not have
|
#
|
||||||
# Shell variables expanded. We do that now.
|
# Config file update requires that the option values not have
|
||||||
#
|
# Shell variables expanded. We do that now.
|
||||||
# We must first make LOG_LEVEL a variable because the order in which
|
#
|
||||||
# the values are processed below is not the order in which they appear
|
# We must first make LOG_LEVEL a variable because the order in which
|
||||||
# in the config file.
|
# the values are processed below is not the order in which they appear
|
||||||
#
|
# in the config file.
|
||||||
$config{LOG_LEVEL} = '' unless defined $config{LOG_LEVEL};
|
#
|
||||||
|
$config{LOG_LEVEL} = '' unless defined $config{LOG_LEVEL};
|
||||||
|
|
||||||
my %log_level = ( LOG_LEVEL => $config{LOG_LEVEL} );
|
my %log_level = ( LOG_LEVEL => $config{LOG_LEVEL} );
|
||||||
|
|
||||||
add_variables( %log_level );
|
add_variables( %log_level );
|
||||||
|
|
||||||
for ( values %config ) {
|
for ( values %config ) {
|
||||||
if ( supplied $_ ) {
|
if ( supplied $_ ) {
|
||||||
expand_variables( $_ ) unless /^'(.+)'$/;
|
expand_variables( $_ ) unless /^'.*'$/;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user