dovecot-2.0-sslstream: anvil: Stay alive until it has no more cl...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 13 02:56:22 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0-sslstream/rev/506fba223006
changeset: 10320:506fba223006
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Nov 12 18:37:57 2009 -0500
description:
anvil: Stay alive until it has no more clients.

diffstat:

2 files changed, 12 insertions(+), 3 deletions(-)
src/anvil/main.c             |    1 -
src/master/service-process.c |   14 ++++++++++++--

diffs (35 lines):

diff -r 1c29c69248e0 -r 506fba223006 src/anvil/main.c
--- a/src/anvil/main.c	Thu Nov 12 18:28:39 2009 -0500
+++ b/src/anvil/main.c	Thu Nov 12 18:37:57 2009 -0500
@@ -25,7 +25,6 @@ int main(int argc, char *argv[])
 	if (master_getopt(master_service) > 0)
 		return FATAL_DEFAULT;
 
-	master_service_set_die_with_master(master_service, TRUE);
 	master_service_init_log(master_service, "anvil: ");
 	master_service_init_finish(master_service);
 	connect_limit = connect_limit_init();
diff -r 1c29c69248e0 -r 506fba223006 src/master/service-process.c
--- a/src/master/service-process.c	Thu Nov 12 18:28:39 2009 -0500
+++ b/src/master/service-process.c	Thu Nov 12 18:37:57 2009 -0500
@@ -100,8 +100,18 @@ service_dup_fds(struct service *service)
 		dup2_append(&dups, service->login_notify_fd,
 			    MASTER_LOGIN_NOTIFY_FD);
 	}
-	dup2_append(&dups, service_anvil_global->blocking_fd[1],
-		    MASTER_ANVIL_FD);
+	switch (service->type) {
+	case SERVICE_TYPE_LOG:
+	case SERVICE_TYPE_ANVIL:
+	case SERVICE_TYPE_CONFIG:
+		dup2_append(&dups, null_fd, MASTER_ANVIL_FD);
+		break;
+	case SERVICE_TYPE_UNKNOWN:
+	case SERVICE_TYPE_LOGIN:
+		dup2_append(&dups, service_anvil_global->blocking_fd[1],
+			    MASTER_ANVIL_FD);
+		break;
+	}
 	dup2_append(&dups, service->status_fd[1], MASTER_STATUS_FD);
 
 	if (service->type != SERVICE_TYPE_LOG) {


More information about the dovecot-cvs mailing list