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