From 2a565ee35d8079c0f865355f6cc3f4163f2598d3 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 7 Aug 2018 23:55:30 +0800 Subject: [PATCH] common: expand meta in parse_argv() it fixes the issue where the conf->foo fails to expand if it is set as "$bar" in a .conf file, and "bar" is another config var, and bar is set using config_proxy.parse_argv(). because before 773ef117, apply_changes() calls update_legacy_vals(), which expand meta vars for legacy config vals, but after 773ef117, we cannot change config_values in apply_changes() anymore. so update_legacy_vals() calls is moved to apply_changes()'s callers accordingly. but the apply_changes() is also called by global_init() directly instead of by the routines in config.cc. so in 773ef117, i missed it. in this change, it's put back into parse_argv() instead of into global_init(), as update_legacy_vals() is a low level function, and parse_argv() could change the config_values, it's better to call update_legacy_vals() out there, just like set_mon_vals() and parse_config_files(). Signed-off-by: Kefu Chai --- src/common/config.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/config.cc b/src/common/config.cc index 0678b9d05d8..0b9d35ff2f4 100644 --- a/src/common/config.cc +++ b/src/common/config.cc @@ -609,6 +609,8 @@ int md_config_t::parse_argv(ConfigValues& values, } } } + // meta expands could have modified anything. Copy it all out again. + update_legacy_vals(values); return 0; }