Wietse Venema wrote:
> While adding a feature I ran into a problem that is so old that I
> had to dig into my pre-alpha source code to find when it was
> introduced.
> 
>       Bugfix (introduced May 19, 1997): removing a parameter
>       setting from main.cf did not reset the parameter to its
>       default value.  File: global/mail_params.c.
> 
> This has rarely been an issue because most Postfix processes run
> for a limited amount of time, and because people usually do "postfix
> reload" after making a change, so that all daemons except master
> terminate voluntarily.
> 
> A redundant design does have benefits ...
> 
>       Wietse
> 
> diff -bcr /var/tmp/postfix-2.6-20090106/src/global/mail_conf.c ./mail_conf.c
> *** /var/tmp/postfix-2.6-20090106/src/global/mail_conf.c      Sat Apr 10 
> 10:52:51 2004
> --- ./mail_conf.c     Thu Jan  8 20:45:10 2009
> ***************
> *** 173,178 ****
> --- 173,181 ----
>       && geteuid() != 0)                      /* untrusted */
>       mail_conf_checkdir(var_config_dir);
>       path = concatenate(var_config_dir, "/", "main.cf", (char *) 0);
> +     /* In case a name=value pair is removed from main.cf. */
> +     if (dict_handle(CONFIG_DICT) != 0)
> +         dict_unregister(CONFIG_DICT);
>       dict_load_file(CONFIG_DICT, path);
>       myfree(path);
>   }


Just goes to show you.. that the work is never done!

-Matt

Reply via email to