dovecot-2.0: lib-master: Added master_service_set_die_with_master.

dovecot at dovecot.org dovecot at dovecot.org
Sat Sep 5 00:34:25 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/c58c40a83bbd
changeset: 9878:c58c40a83bbd
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Sep 04 17:32:31 2009 -0400
description:
lib-master: Added master_service_set_die_with_master.

diffstat:

3 files changed, 13 insertions(+), 1 deletion(-)
src/lib-master/master-service-private.h |    1 +
src/lib-master/master-service.c         |    8 +++++++-
src/lib-master/master-service.h         |    5 +++++

diffs (51 lines):

diff -r 3de6af0eb499 -r c58c40a83bbd src/lib-master/master-service-private.h
--- 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 @@ struct master_service {
 	unsigned int log_directly:1;
 	unsigned int initial_status_sent:1;
 	unsigned int default_settings:1;
+	unsigned int die_with_master:1;
 };
 
 #endif
diff -r 3de6af0eb499 -r c58c40a83bbd src/lib-master/master-service.c
--- 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
@@ -176,6 +176,12 @@ void master_service_init_log(struct mast
 	if (*path != '\0')
 		i_set_info_file(path);
 	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,
@@ -215,7 +221,7 @@ static void master_service_error(struct 
 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);
diff -r 3de6af0eb499 -r c58c40a83bbd src/lib-master/master-service.h
--- 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 mast
 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);


More information about the dovecot-cvs mailing list