From: Timo Sirainen Date: Thu, 12 Nov 2009 23:37:57 +0000 (-0500) Subject: anvil: Stay alive until it has no more clients. X-Git-Tag: 2.0.beta1~160 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=efc5c69c572e83db7bf7eab5d4698c0ab0d3d886;p=thirdparty%2Fdovecot%2Fcore.git anvil: Stay alive until it has no more clients. --HG-- branch : HEAD --- diff --git a/src/anvil/main.c b/src/anvil/main.c index e09a678c81..f6021b25c4 100644 --- a/src/anvil/main.c +++ b/src/anvil/main.c @@ -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 --git a/src/master/service-process.c b/src/master/service-process.c index aff94e1b59..8a3533e965 100644 --- a/src/master/service-process.c +++ b/src/master/service-process.c @@ -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) {