On Sat, Sep 27, 2014 at 02:23:12PM -0400, Wietse Venema wrote:
> > + if ((config_dir = safe_getenv(CONF_ENV_PATH)) != 0 &&
> > + strcmp(config_dir, DEF_CONFIG_DIR) != 0) {
>
> I prefer not to lie in software. Thus, config_dir will show up in
> "postconf -n" output when there is any override, regardless of
> whether it comes from main.cf, MAIL_CONF, or -c options, even
> if inherited from a multi-instane manager.
In other respects, is the rest of the patch sound (correct and
useful)? I am not advocating that the patch be adopted, just using
it to ask the question more precisely. The upside is avoiding any
confusion as to why config_directory is showing up, even though it
is not actually set in main.cf. The downside is that when the
compile-time main.cf is in some unexpected location (say /usr/local/etc),
postconf -n would not show this. In all likelihood showing the
"extra" setting does more good than harm.
diff --git a/src/postconf/postconf_misc.c b/src/postconf/postconf_misc.c
index af55d14..0107651 100644
--- a/src/postconf/postconf_misc.c
+++ b/src/postconf/postconf_misc.c
@@ -51,7 +51,10 @@ void pcf_set_config_dir(void)
if (var_config_dir)
myfree(var_config_dir);
- var_config_dir = mystrdup((config_dir = safe_getenv(CONF_ENV_PATH)) != 0 ?
- config_dir : DEF_CONFIG_DIR); /* XXX */
- set_mail_conf_str(VAR_CONFIG_DIR, var_config_dir);
+ if ((config_dir = safe_getenv(CONF_ENV_PATH)) != 0) {
+ var_config_dir = mystrdup(config_dir);
+ set_mail_conf_str(VAR_CONFIG_DIR, var_config_dir);
+ } else {
+ var_config_dir = mystrdup(DEF_CONFIG_DIR);
+ }
}
--
Viktor.