static void
mail_process_set_environment(struct settings *set, const char *mail,
const struct var_expand_table *var_expand_table,
- bool dump_capability)
+ bool dump_capability, bool exec_mail)
{
const char *const *envs;
string_t *str;
if (set->mbox_lazy_writes)
env_put("MBOX_LAZY_WRITES=1");
/* when running dump-capability log still points to stderr,
- and io_add()ing it might break (epoll_ctl() gives EPERM) */
- if (set->shutdown_clients && !dump_capability)
+ and io_add()ing it might break (epoll_ctl() gives EPERM).
+ with --exec-mail there's no benefit in adding an extra stderr
+ listener, but it might cause problems. */
+ if (set->shutdown_clients && !dump_capability && !exec_mail)
env_put("STDERR_CLOSE_SHUTDOWN=1");
(void)umask(set->umask);
}
mail_process_set_environment(set, getenv("MAIL"), var_expand_table,
- FALSE);
+ FALSE, TRUE);
if (args == NULL)
client_process_exec(executable, "");
else
}
mail_process_set_environment(set, mail, var_expand_table,
- dump_capability);
+ dump_capability, FALSE);
/* extra args. uppercase key value. */
args = array_get(&extra_args, &count);