]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: test-http-client-errors - Add support for server connection init/deinit...
authorStephan Bosch <stephan.bosch@open-xchange.com>
Fri, 24 Apr 2020 22:25:07 +0000 (00:25 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 27 Apr 2020 17:27:34 +0000 (17:27 +0000)
src/lib-http/test-http-client-errors.c

index 9defaf8b80c559362957bd6059221d4408e89bf6..cd451c7a5552e837b93a3b79e2e0517af956e13f 100644 (file)
@@ -28,6 +28,7 @@
 
 struct server_connection {
        struct connection conn;
+       void *context;
 
        pool_t pool;
        bool version_sent:1;
@@ -59,6 +60,8 @@ static unsigned int server_pids_count = 0;
 static struct connection_list *server_conn_list;
 static size_t server_read_max = 0;
 static unsigned int server_index;
+static int (*test_server_init)(struct server_connection *conn);
+static void (*test_server_deinit)(struct server_connection *conn);
 static void (*test_server_input)(struct server_connection *conn);
 
 /* client */
@@ -3195,6 +3198,11 @@ static void server_connection_init(int fd)
 
        connection_init_server(server_conn_list, &conn->conn,
                               "server connection", fd, fd);
+
+       if (test_server_init != NULL) {
+               if (test_server_init(conn) != 0)
+                       return;
+       }
 }
 
 static void server_connection_deinit(struct server_connection **_conn)
@@ -3203,6 +3211,9 @@ static void server_connection_deinit(struct server_connection **_conn)
 
        *_conn = NULL;
 
+       if (test_server_deinit != NULL)
+               test_server_deinit(conn);
+
        connection_deinit(&conn->conn);
        pool_unref(&conn->pool);
 }
@@ -3310,6 +3321,10 @@ test_run_client_server(const struct http_client_settings *client_set,
        server_pids = NULL;
        server_pids_count = 0;
 
+       test_server_init = NULL;
+       test_server_deinit = NULL;
+       test_server_input = NULL;
+
        if (server_tests_count > 0) {
                int fds[server_tests_count];