struct ssl_iostream_context *ssl_ctx;
time_t ssl_params_last_refresh;
+ char *current_user;
+
struct stats_client *stats_client;
struct master_service_haproxy_conn *haproxy_conns;
struct event_filter *process_shutdown_filter;
i_free(service->configured_name);
i_free(service->name);
i_free(service->config_path);
+ i_free(service->current_user);
i_free(service);
}
{
event_filter_unref(&service->process_shutdown_filter);
}
+
+void master_service_set_current_user(struct master_service *service,
+ const char *user)
+{
+ char *old_user = service->current_user;
+ service->current_user = i_strdup(user);
+ i_free(old_user);
+}
/* Unsets process shutdown filter, if it exists */
void master_service_unset_process_shutdown_filter(struct master_service *service);
+/* Change the user being currently handled. Call with user=NULL once done.
+ This is used by SIGTERM handler to prevent doveadm kick from kicking wrong
+ users due to race conditions. */
+void master_service_set_current_user(struct master_service *service,
+ const char *user);
+
#endif