]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Added MASTER_SERVICE_FLAG_NO_IDLE_DIE.
authorTimo Sirainen <tss@iki.fi>
Mon, 21 Jun 2010 15:53:33 +0000 (16:53 +0100)
committerTimo Sirainen <tss@iki.fi>
Mon, 21 Jun 2010 15:53:33 +0000 (16:53 +0100)
--HG--
branch : HEAD

src/lib-master/master-service.c
src/lib-master/master-service.h

index e5f8bfc4996f164e2c19f44d0f97e664346572bc..97395aa7dba8f500905900df9a8c3522e0141d28 100644 (file)
@@ -58,7 +58,8 @@ 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) == 0) {
+       } else if ((service->flags & (MASTER_SERVICE_FLAG_STANDALONE |
+                                     MASTER_SERVICE_FLAG_NO_IDLE_DIE)) == 0) {
                /* SIGINT came from master. die only if we're not handling
                   any clients currently. */
                if (service->master_status.available_count !=
index cc5a8c3c1ed9ac3d8b92b2bec4220d6c99977d82..95fd38c0f2ecb1123c7b2c6372012b440f761459 100644 (file)
@@ -17,7 +17,9 @@ enum master_service_flags {
        /* Don't read settings, but use whatever is in environment */
        MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS  = 0x10,
        /* Use MASTER_LOGIN_NOTIFY_FD to track login overflow state */
-       MASTER_SERVICE_FLAG_TRACK_LOGIN_STATE   = 0x40
+       MASTER_SERVICE_FLAG_TRACK_LOGIN_STATE   = 0x40,
+       /* If master sends SIGINT, don't die even if we don't have clients */
+       MASTER_SERVICE_FLAG_NO_IDLE_DIE         = 0x80
 };
 
 struct master_service_connection {