diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib-master/master-service-private.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/src/lib-master/master-service-private.h b/src/lib-master/master-service-private.h new file mode 100644 index 0000000..429f2eb --- /dev/null +++ b/src/lib-master/master-service-private.h @@ -0,0 +1,109 @@ +#ifndef MASTER_SERVICE_PRIVATE_H +#define MASTER_SERVICE_PRIVATE_H + +#include "master-interface.h" +#include "master-service.h" + +struct master_service_haproxy_conn; + +struct master_service_listener { + struct master_service *service; + char *name; + + /* settings */ + bool ssl; + bool haproxy; + + /* state */ + bool closed; + int fd; + struct io *io; +}; + +struct master_service { + struct ioloop *ioloop; + + char *name; + char *configured_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; + data_stack_frame_t datastack_frame_id; + + 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; + + master_service_avail_overflow_callback_t *avail_overflow_callback; + struct timeout *to_overflow_state, *to_overflow_call; + + 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; + + struct stats_client *stats_client; + struct master_service_haproxy_conn *haproxy_conns; + struct event_filter *process_shutdown_filter; + + bool killed:1; + bool stopping:1; + bool keep_environment:1; + bool log_directly:1; + bool initial_status_sent:1; + bool die_with_master:1; + bool call_avail_overflow:1; + bool config_path_changed_with_param:1; + bool want_ssl_server:1; + bool ssl_ctx_initialized:1; + bool config_path_from_master:1; + bool log_initialized:1; + bool init_finished: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); + +void master_service_haproxy_new(struct master_service *service, + struct master_service_connection *conn); +void master_service_haproxy_abort(struct master_service *service); + +#endif |