unsigned int log_directly:1;
unsigned int initial_status_sent:1;
unsigned int default_settings:1;
+ unsigned int die_with_master:1;
};
#endif
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)
{
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);
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);