changeset 8405:cb742f826abd HEAD

dovecot --exec-mail: Never listen input from stderr, there's no point.
author Timo Sirainen <tss@iki.fi>
date Sat, 15 Nov 2008 19:34:28 +0200
parents d3cbd3494a8c
children ed4d6fc5712b
files src/master/mail-process.c
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/master/mail-process.c	Sat Nov 15 19:22:33 2008 +0200
+++ b/src/master/mail-process.c	Sat Nov 15 19:34:28 2008 +0200
@@ -290,7 +290,7 @@
 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;
@@ -370,8 +370,10 @@
 	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);
 
@@ -486,7 +488,7 @@
 	}
 
 	mail_process_set_environment(set, getenv("MAIL"), var_expand_table,
-				     FALSE);
+				     FALSE, TRUE);
 	if (args == NULL)
 		client_process_exec(executable, "");
 	else
@@ -816,7 +818,7 @@
 	}
 
 	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);