From: Markus Valentin Date: Mon, 4 Dec 2023 13:09:58 +0000 (+0100) Subject: lib-http: Remove event from http-server-settings struct X-Git-Tag: 2.4.1~1062 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7bfbefa934cad0c7f9807d0d630694dab1d54ad0;p=thirdparty%2Fdovecot%2Fcore.git lib-http: Remove event from http-server-settings struct This requires changes to functions calling http_server_init() --- diff --git a/src/doveadm/client-connection-http.c b/src/doveadm/client-connection-http.c index 4f89a577f8..1f97f7828b 100644 --- a/src/doveadm/client-connection-http.c +++ b/src/doveadm/client-connection-http.c @@ -1207,13 +1207,13 @@ doveadm_http_server_connection_destroy(void *context, * Server */ -void doveadm_http_server_init(void) +void doveadm_http_server_init(struct event *event) { struct http_server_settings http_set = { .rawlog_dir = doveadm_settings->doveadm_http_rawlog_dir, }; - doveadm_http_server = http_server_init(&http_set); + doveadm_http_server = http_server_init(&http_set, event); } void doveadm_http_server_deinit(void) diff --git a/src/doveadm/client-connection-private.h b/src/doveadm/client-connection-private.h index 8205531c5f..d124009a21 100644 --- a/src/doveadm/client-connection-private.h +++ b/src/doveadm/client-connection-private.h @@ -13,10 +13,10 @@ void client_connection_destroy(struct client_connection **_conn); void client_connection_set_proctitle(struct client_connection *conn, const char *text); -void doveadm_http_server_init(void); +void doveadm_http_server_init(struct event *event); void doveadm_http_server_deinit(void); -void doveadm_server_init(void); +void doveadm_server_init(struct event *event); void doveadm_server_deinit(void); #endif diff --git a/src/doveadm/client-connection.c b/src/doveadm/client-connection.c index 14a02e529c..a1d1d14bc4 100644 --- a/src/doveadm/client-connection.c +++ b/src/doveadm/client-connection.c @@ -101,9 +101,9 @@ void client_connection_set_proctitle(struct client_connection *conn, process_title_set(str); } -void doveadm_server_init(void) +void doveadm_server_init(struct event *event) { - doveadm_http_server_init(); + doveadm_http_server_init(event); } void doveadm_server_deinit(void) diff --git a/src/doveadm/main.c b/src/doveadm/main.c index d9a9b4a43a..cfd775ddfd 100644 --- a/src/doveadm/main.c +++ b/src/doveadm/main.c @@ -79,7 +79,7 @@ static void main_init(void) mail_plugins have been loaded. */ doveadm_load_modules(); - doveadm_server_init(); + doveadm_server_init(master_service_get_event(master_service)); if (doveadm_verbose_proctitle) process_title_set("[idling]"); } diff --git a/src/lib-http/http-server.c b/src/lib-http/http-server.c index 9edd32dc52..c9243f7d5c 100644 --- a/src/lib-http/http-server.c +++ b/src/lib-http/http-server.c @@ -25,7 +25,8 @@ static struct event_category event_category_http_server = { * Server */ -struct http_server *http_server_init(const struct http_server_settings *set) +struct http_server *http_server_init(const struct http_server_settings *set, + struct event *event_parent) { struct http_server *server; pool_t pool; @@ -56,7 +57,7 @@ struct http_server *http_server_init(const struct http_server_settings *set) server->set.socket_recv_buffer_size = set->socket_recv_buffer_size; server->set.debug = set->debug; - server->event = event_create(set->event); + server->event = event_create(event_parent); event_add_category(server->event, &event_category_http_server); event_set_forced_debug(server->event, set->debug); event_set_append_log_prefix(server->event, "http-server: "); diff --git a/src/lib-http/http-server.h b/src/lib-http/http-server.h index 2199cac285..f7c12e0ad4 100644 --- a/src/lib-http/http-server.h +++ b/src/lib-http/http-server.h @@ -53,9 +53,6 @@ struct http_server_settings { size_t socket_send_buffer_size; size_t socket_recv_buffer_size; - /* Event to use for the http server. */ - struct event *event; - /* Enable logging debug messages */ bool debug; }; @@ -427,7 +424,8 @@ void http_server_resource_set_destroy_callback(struct http_server_resource *res, * Server */ -struct http_server *http_server_init(const struct http_server_settings *set); +struct http_server *http_server_init(const struct http_server_settings *set, + struct event *event_parent); void http_server_deinit(struct http_server **_server); /* Shut down the server; accept no new requests and drop connections once diff --git a/src/lib-http/test-http-payload.c b/src/lib-http/test-http-payload.c index 4b61b1baa9..588eaf54f9 100644 --- a/src/lib-http/test-http-payload.c +++ b/src/lib-http/test-http-payload.c @@ -851,7 +851,7 @@ static void test_server_init(const struct http_server_settings *server_set) /* open server socket */ io_listen = io_add(fd_listen, IO_READ, client_accept, NULL); - http_server = http_server_init(server_set); + http_server = http_server_init(server_set, server_event); http_server->conn_list->v.init = test_http_server_connection_init; } diff --git a/src/lib-http/test-http-server-errors.c b/src/lib-http/test-http-server-errors.c index a3bb303904..bd5dcb3aa2 100644 --- a/src/lib-http/test-http-server-errors.c +++ b/src/lib-http/test-http-server-errors.c @@ -884,13 +884,14 @@ static void test_server_timeout(void *context ATTR_UNUSED) static void test_server_run(const struct http_server_settings *http_set) { struct timeout *to; + struct event *event = event_create(NULL); to = timeout_add(SERVER_MAX_TIMEOUT_MSECS, test_server_timeout, NULL); /* open server socket */ io_listen = io_add(fd_listen, IO_READ, server_connection_accept, NULL); - http_server = http_server_init(http_set); + http_server = http_server_init(http_set, event); io_loop_run(ioloop); @@ -899,6 +900,7 @@ static void test_server_run(const struct http_server_settings *http_set) timeout_remove(&to); http_server_deinit(&http_server); + event_unref(&event); } /* diff --git a/src/lib-http/test-http-server.c b/src/lib-http/test-http-server.c index c2432435b4..bbc64d4b34 100644 --- a/src/lib-http/test-http-server.c +++ b/src/lib-http/test-http-server.c @@ -216,8 +216,9 @@ int main(int argc, char *argv[]) http_set.debug = debug; ioloop = io_loop_create(); + struct event *event = event_create(NULL); - http_server = http_server_init(&http_set); + http_server = http_server_init(&http_set, event); lib_signals_init(); lib_signals_ignore(SIGPIPE, TRUE); @@ -238,6 +239,7 @@ int main(int argc, char *argv[]) clients_destroy_all(); /* just an example; avoid doing this */ http_server_deinit(&http_server); + event_unref(&event); lib_signals_deinit(); io_loop_destroy(&ioloop); lib_deinit(); diff --git a/src/stats/client-http.c b/src/stats/client-http.c index 1811917934..b21fc80b99 100644 --- a/src/stats/client-http.c +++ b/src/stats/client-http.c @@ -213,7 +213,7 @@ stats_http_resource_root_request(void *context ATTR_UNUSED, * Server */ -void client_http_init(const struct stats_settings *set) +void client_http_init(const struct stats_settings *set, struct event *event) { struct http_server_settings http_set = { .rawlog_dir = set->stats_http_rawlog_dir, @@ -221,7 +221,7 @@ void client_http_init(const struct stats_settings *set) i_array_init(&stats_http_resources, 8); - stats_http_server = http_server_init(&http_set); + stats_http_server = http_server_init(&http_set, event); stats_http_resource_add("/", NULL, stats_http_resource_root_request, NULL); } diff --git a/src/stats/client-http.h b/src/stats/client-http.h index 4251ce33ed..be99671192 100644 --- a/src/stats/client-http.h +++ b/src/stats/client-http.h @@ -22,7 +22,7 @@ void stats_http_resource_add(const char *path, const char *title, typeof(context), struct http_server_request *req, \ const char *sub_path)))) -void client_http_init(const struct stats_settings *set); +void client_http_init(const struct stats_settings *set, struct event *event); void client_http_deinit(void); #endif diff --git a/src/stats/main.c b/src/stats/main.c index 4d944e7818..b2399f1c11 100644 --- a/src/stats/main.c +++ b/src/stats/main.c @@ -59,7 +59,8 @@ static void main_init(void) stats_event_categories_init(); client_readers_init(); client_writers_init(); - client_http_init(stats_settings); + client_http_init(stats_settings, + master_service_get_event(master_service)); stats_services_init(); }