Mercurial > dovecot > core-2.2
changeset 10319:506fba223006 HEAD
anvil: Stay alive until it has no more clients.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 12 Nov 2009 18:37:57 -0500 |
parents | 1c29c69248e0 |
children | 4933856b86d7 |
files | src/anvil/main.c src/master/service-process.c |
diffstat | 2 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ 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();
--- 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 @@ 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) {