Mercurial > dovecot > core-2.2
view src/lib-master/master-service-private.h @ 18951:52368e60177c
master: Changed passing of listener settings from master to process to be more flexible.
This is needed to allow adding new listener settings, such as `haproxy'.
Patch by Stephan Bosch - with some small changes.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 18 Aug 2015 20:23:45 +0300 |
parents | b9ccd6349654 |
children | 4d7a83ddb644 |
line wrap: on
line source
#ifndef MASTER_SERVICE_PRIVATE_H #define MASTER_SERVICE_PRIVATE_H #include "master-interface.h" #include "master-service.h" struct master_service_listener { struct master_service *service; char *name; /* settings */ bool ssl; /* state */ int fd; struct io *io; }; struct master_service { struct ioloop *ioloop; char *name; char *getopt_str; enum master_service_flags flags; int argc; char **argv; const char *version_string; char *config_path; ARRAY_TYPE(const_string) config_overrides; int config_fd; int syslog_facility; struct master_service_listener *listeners; unsigned int socket_count; struct io *io_status_write, *io_status_error; unsigned int service_count_left; unsigned int total_available_count; unsigned int process_limit; unsigned int process_min_avail; unsigned int idle_kill_secs; struct master_status master_status; unsigned int last_sent_status_avail_count; time_t last_sent_status_time; struct timeout *to_status; bool (*idle_die_callback)(void); void (*die_callback)(void); struct timeout *to_die; void (*avail_overflow_callback)(void); struct timeout *to_overflow_state; struct master_login *login; master_service_connection_callback_t *callback; pool_t set_pool; const struct master_service_settings *set; struct setting_parser_context *set_parser; struct ssl_iostream_context *ssl_ctx; time_t ssl_params_last_refresh; unsigned int killed:1; unsigned int stopping:1; unsigned int keep_environment:1; unsigned int log_directly:1; unsigned int initial_status_sent:1; unsigned int die_with_master:1; unsigned int call_avail_overflow:1; unsigned int config_path_changed_with_param:1; unsigned int want_ssl_settings:1; unsigned int ssl_ctx_initialized:1; unsigned int config_path_from_master:1; }; void master_service_io_listeners_add(struct master_service *service); void master_status_update(struct master_service *service); void master_service_close_config_fd(struct master_service *service); void master_service_io_listeners_remove(struct master_service *service); void master_service_ssl_io_listeners_remove(struct master_service *service); void master_service_client_connection_handled(struct master_service *service, struct master_service_connection *conn); void master_service_client_connection_callback(struct master_service *service, struct master_service_connection *conn); #endif