Mercurial > dovecot > core-2.2
changeset 9878:c58c40a83bbd HEAD
lib-master: Added master_service_set_die_with_master.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 04 Sep 2009 17:32:31 -0400 |
parents | 3de6af0eb499 |
children | e11bd2547bb2 |
files | src/lib-master/master-service-private.h src/lib-master/master-service.c src/lib-master/master-service.h |
diffstat | 3 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-master/master-service-private.h Fri Sep 04 17:14:47 2009 -0400 +++ b/src/lib-master/master-service-private.h Fri Sep 04 17:32:31 2009 -0400 @@ -45,6 +45,7 @@ unsigned int log_directly:1; unsigned int initial_status_sent:1; unsigned int default_settings:1; + unsigned int die_with_master:1; }; #endif
--- a/src/lib-master/master-service.c Fri Sep 04 17:14:47 2009 -0400 +++ b/src/lib-master/master-service.c Fri Sep 04 17:32:31 2009 -0400 @@ -178,6 +178,12 @@ i_set_failure_timestamp_format(service->set->log_timestamp); } +void master_service_set_die_with_master(struct master_service *service, + bool set) +{ + service->die_with_master = set; +} + bool master_service_parse_option(struct master_service *service, int opt, const char *arg) { @@ -215,7 +221,7 @@ static void master_service_error(struct master_service *service) { if (service->master_status.available_count == - service->total_available_count) + service->total_available_count || service->die_with_master) master_service_stop(service); else io_listeners_remove(service);
--- a/src/lib-master/master-service.h Fri Sep 04 17:14:47 2009 -0400 +++ b/src/lib-master/master-service.h Fri Sep 04 17:32:31 2009 -0400 @@ -52,6 +52,11 @@ void master_service_init_log(struct master_service *service, const char *prefix, unsigned int max_lines_per_sec); +/* If set, die immediately when connection to master is lost. + Normally all existing clients are handled first. */ +void master_service_set_die_with_master(struct master_service *service, + bool set); + /* Set maximum number of clients we can handle. Default is given by master. */ void master_service_set_client_limit(struct master_service *service, unsigned int client_limit);