]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: MASTER_SERVICE_FLAG_NO_IDLE_DIE wasn't actually working.
authorTimo Sirainen <tss@iki.fi>
Thu, 24 Jun 2010 14:47:13 +0000 (15:47 +0100)
committerTimo Sirainen <tss@iki.fi>
Thu, 24 Jun 2010 14:47:13 +0000 (15:47 +0100)
--HG--
branch : HEAD

src/lib-master/master-service.c

index 97395aa7dba8f500905900df9a8c3522e0141d28..09c5ca63afac95e1ea1b8f8719859a3f1b1a3600 100644 (file)
@@ -58,8 +58,10 @@ static void sig_die(const siginfo_t *si, void *context)
                          si->si_signo, dec2str(si->si_pid),
                          dec2str(si->si_uid),
                          lib_signal_code_to_str(si->si_signo, si->si_code));
-       } else if ((service->flags & (MASTER_SERVICE_FLAG_STANDALONE |
-                                     MASTER_SERVICE_FLAG_NO_IDLE_DIE)) == 0) {
+       } else if ((service->flags & MASTER_SERVICE_FLAG_NO_IDLE_DIE) != 0) {
+               /* never die when idling */
+               return;
+       } else if ((service->flags & MASTER_SERVICE_FLAG_STANDALONE) == 0) {
                /* SIGINT came from master. die only if we're not handling
                   any clients currently. */
                if (service->master_status.available_count !=