]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: Remove event from http-server-settings struct
authorMarkus Valentin <markus.valentin@open-xchange.com>
Mon, 4 Dec 2023 13:09:58 +0000 (14:09 +0100)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:12 +0000 (12:34 +0200)
This requires changes to functions calling http_server_init()

12 files changed:
src/doveadm/client-connection-http.c
src/doveadm/client-connection-private.h
src/doveadm/client-connection.c
src/doveadm/main.c
src/lib-http/http-server.c
src/lib-http/http-server.h
src/lib-http/test-http-payload.c
src/lib-http/test-http-server-errors.c
src/lib-http/test-http-server.c
src/stats/client-http.c
src/stats/client-http.h
src/stats/main.c

index 4f89a577f87518fd3dfebb8a9da6769bea58a5de..1f97f7828b7106181a07c5adc8fe630443cc5d19 100644 (file)
@@ -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)
index 8205531c5fb4581cca94d0e99b3c6d408d6dc460..d124009a2171887c259a1ef03cb4282c7341d8e2 100644 (file)
@@ -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
index 14a02e529cc12c6f77d3756253028f2c580744ff..a1d1d14bc4ffd74a3aefc8b36cc13dfd937c2104 100644 (file)
@@ -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)
index d9a9b4a43ae76e675294e38b603a0618c64df3a0..cfd775ddfdff55f13974174a6fcad1430ef96203 100644 (file)
@@ -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]");
 }
index 9edd32dc5228e00365eb25179a25d2d32510aab8..c9243f7d5c4c8d214030a10d114138771e7ae475 100644 (file)
@@ -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: ");
index 2199cac2859744d1fef288c558b1c392db4fac79..f7c12e0ad4b0871658d7c8c2546ae965792d7a0c 100644 (file)
@@ -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
index 4b61b1baa9c4515d24062d6f545af2e92c5a38d5..588eaf54f92bf291b48ad0c717f7f0339ff924fc 100644 (file)
@@ -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;
 }
 
index a3bb3039041457baff65e4fc224576601e8f70e7..bd5dcb3aa2c81cd9e8cccf163f17f6646114aa18 100644 (file)
@@ -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);
 }
 
 /*
index c2432435b44de9a3c98454f19e6d41764caa12bb..bbc64d4b34c5d4359974d327c4134c1f2f46e280 100644 (file)
@@ -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();
index 18119179340ffce46c89fcb32a2393fceab321f8..b21fc80b991628e89ef17360f9e7c17ed4d28378 100644 (file)
@@ -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);
 }
index 4251ce33ed793aa8433b13cbb3b8b03c4ffeefcc..be996711923bbfae091e2eee92a2070976ff2c7b 100644 (file)
@@ -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
index 4d944e78189020a6bfa9acacc781eb1671bc7e81..b2399f1c11d459fb1b50da08fda851df8224640d 100644 (file)
@@ -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();
 }