Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5119:7144aff70f33 HEAD
When running dump-capability, don't do stderr_close_shutdown since it could
break and make epoll_ctl() return with EPERM.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 12 Feb 2007 20:14:13 +0200 |
parents | c2af4ee1f25e |
children | e4acabdc0de0 |
files | src/master/mail-process.c |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/master/mail-process.c Mon Feb 12 19:27:25 2007 +0200 +++ b/src/master/mail-process.c Mon Feb 12 20:14:13 2007 +0200 @@ -192,7 +192,8 @@ static void mail_process_set_environment(struct settings *set, const char *mail, - const struct var_expand_table *var_expand_table) + const struct var_expand_table *var_expand_table, + bool dump_capability) { const char *const *envs; string_t *str; @@ -257,7 +258,9 @@ env_put("MBOX_VERY_DIRTY_SYNCS=1"); if (set->mbox_lazy_writes) env_put("MBOX_LAZY_WRITES=1"); - if (set->shutdown_clients) + /* 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) env_put("STDERR_CLOSE_SHUTDOWN=1"); (void)umask(set->umask); @@ -346,7 +349,8 @@ getenv("TCPREMOTEIP"), getpid(), geteuid()); - mail_process_set_environment(set, getenv("MAIL"), var_expand_table); + mail_process_set_environment(set, getenv("MAIL"), var_expand_table, + FALSE); client_process_exec(executable, ""); i_fatal_status(FATAL_EXEC, "execv(%s) failed: %m", executable); @@ -605,7 +609,8 @@ i_fatal("chdir(/tmp) failed: %m"); } - mail_process_set_environment(set, mail, var_expand_table); + mail_process_set_environment(set, mail, var_expand_table, + dump_capability); /* extra args. uppercase key value. */ args = array_get(&extra_args, &count);