From: Timo Sirainen Date: Mon, 21 Jun 2010 15:53:33 +0000 (+0100) Subject: lib-master: Added MASTER_SERVICE_FLAG_NO_IDLE_DIE. X-Git-Tag: 2.0.rc1~122 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f37ecd72aad9b806aae83f71bacafdce32146945;p=thirdparty%2Fdovecot%2Fcore.git lib-master: Added MASTER_SERVICE_FLAG_NO_IDLE_DIE. --HG-- branch : HEAD --- diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c index e5f8bfc499..97395aa7db 100644 --- a/src/lib-master/master-service.c +++ b/src/lib-master/master-service.c @@ -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 != diff --git a/src/lib-master/master-service.h b/src/lib-master/master-service.h index cc5a8c3c1e..95fd38c0f2 100644 --- a/src/lib-master/master-service.h +++ b/src/lib-master/master-service.h @@ -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 {