]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: Pass event to SSL iostream
authorAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 8 Jul 2022 09:03:25 +0000 (12:03 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 15 Jul 2022 08:33:21 +0000 (08:33 +0000)
14 files changed:
src/lib-doveadm/doveadm-client.c
src/lib-http/http-client-connection.c
src/lib-http/http-server-connection.c
src/lib-imap-client/imapc-connection.c
src/lib-master/master-service-ssl.c
src/lib-smtp/smtp-client-connection.c
src/lib-smtp/smtp-server-connection.c
src/lib-smtp/test-smtp-client-errors.c
src/lib-ssl-iostream/iostream-ssl.c
src/lib-ssl-iostream/iostream-ssl.h
src/lib-ssl-iostream/test-iostream-ssl.c
src/lib-storage/index/pop3c/pop3c-client.c
src/login-common/client-common.c
src/login-common/login-proxy.c

index d9ffeb0347dc3e1856b3a41ec3f7d73f67ebc40b..ef39edc16cac1e77919a6bfc13d9099e1194d533 100644 (file)
@@ -568,6 +568,7 @@ static int doveadm_client_init_ssl(struct doveadm_client *conn,
                conn->set.hostname != NULL ? conn->set.hostname : "";
        connection_input_halt(&conn->conn);
        if (io_stream_create_ssl_client(conn->set.ssl_ctx, hostname, &ssl_set,
+                                       conn->conn.event,
                                        &conn->conn.input, &conn->conn.output,
                                        &conn->ssl_iostream, &error) < 0) {
                *error_r = t_strdup_printf(
index 0b8e7a170f524ba9de5e6e9d5fe1822799698980..eade551021ad605a81902df9825beb1b127a7697 100644 (file)
@@ -1515,7 +1515,7 @@ http_client_connection_ssl_init(struct http_client_connection *conn,
 
        connection_input_halt(&conn->conn);
        if (io_stream_create_ssl_client(ssl_ctx, pshared->addr.a.tcp.https_name,
-                                       &ssl_set,
+                                       &ssl_set, conn->event,
                                        &conn->conn.input, &conn->conn.output,
                                        &conn->ssl_iostream, &error) < 0) {
                *error_r = t_strdup_printf(
index ae9f20ae6af823cf2511bd7619718803750cb0b0..0e5c37879b0cd16ba3167c84409d710181d478fe 100644 (file)
@@ -373,6 +373,7 @@ http_server_connection_ssl_init(struct http_server_connection *conn)
        } else {
                ret = io_stream_create_ssl_server(server->ssl_ctx,
                                                  server->set.ssl,
+                                                 server->event,
                                                  &conn->conn.input,
                                                  &conn->conn.output,
                                                  &conn->ssl_iostream, &error);
index 50912bb1c1f2fb5d2546f07df8bf507bcdb44fb0..89644dab47451ebedc075121010ccb9f416626e3 100644 (file)
@@ -1670,6 +1670,7 @@ static int imapc_connection_ssl_init(struct imapc_connection *conn)
        if (io_stream_create_ssl_client(conn->client->ssl_ctx,
                                        conn->client->set.host,
                                        &conn->client->set.ssl_set,
+                                       conn->client->event,
                                        &conn->input, &conn->output,
                                        &conn->ssl_iostream, &error) < 0) {
                i_error("imapc(%s): Couldn't initialize SSL client: %s",
index 5d1b5156cfa40274c4929ee3184da1273de98c0b..06cd98184da0f14e0c9cf2db1ecc5962e34454de 100644 (file)
@@ -33,7 +33,7 @@ int master_service_ssl_init(struct master_service *service,
        i_zero(&ssl_set);
        ssl_set.verbose = set->verbose_ssl;
        ssl_set.verify_remote_cert = set->ssl_verify_client_cert;
-       return io_stream_create_ssl_server(service->ssl_ctx, &ssl_set,
+       return io_stream_create_ssl_server(service->ssl_ctx, &ssl_set, NULL,
                                           input, output, ssl_iostream_r, error_r);
 }
 
index f7c5903ddb627addfe639c8df7f00cab7de38fb0..d0ed6804e9f91807edfc796f9c7b2116abb645d1 100644 (file)
@@ -1610,6 +1610,7 @@ smtp_client_connection_ssl_init(struct smtp_client_connection *conn,
        connection_input_halt(&conn->conn);
        if (io_stream_create_ssl_client(
                conn->ssl_ctx, conn->host, conn->set.ssl,
+               conn->event,
                &conn->conn.input, &conn->conn.output,
                &conn->ssl_iostream, &error) < 0) {
                *error_r = t_strdup_printf(
index f301e82ba489589670d3ff98ef011e602a12362d..6a0717f8fa8228b366fc3997741ef3d349ec292b 100644 (file)
@@ -395,7 +395,7 @@ int smtp_server_connection_ssl_init(struct smtp_server_connection *conn)
                        &conn->ssl_iostream, &error);
        } else {
                ret = io_stream_create_ssl_server(
-                       conn->ssl_ctx, conn->set.ssl,
+                       conn->ssl_ctx, conn->set.ssl, conn->event,
                        &conn->conn.input, &conn->conn.output,
                        &conn->ssl_iostream, &error);
        }
index 0c2b03a06e033e62ac46225479a7cf492d06a2af..82b23be620b1b9ba7c75ad4d724b7ef3c9c51992 100644 (file)
@@ -3952,7 +3952,7 @@ server_connection_init_ssl(struct server_connection *conn)
                return -1;
        }
 
-       if (io_stream_create_ssl_server(server_ssl_ctx, &ssl_set,
+       if (io_stream_create_ssl_server(server_ssl_ctx, &ssl_set, conn->conn.event,
                                        &conn->conn.input, &conn->conn.output,
                                        &conn->ssl_iostream, &error) < 0) {
                i_error("SSL init failed: %s", error);
index f6600e561c2b1cf26e29ae73244114cf8fef84c0..2b56f7c01e39025dae68f053c9ac63af764ef4f7 100644 (file)
@@ -123,24 +123,26 @@ void ssl_iostream_context_unref(struct ssl_iostream_context **_ctx)
 
 int io_stream_create_ssl_client(struct ssl_iostream_context *ctx, const char *host,
                                const struct ssl_iostream_settings *set,
+                               struct event *event_parent,
                                struct istream **input, struct ostream **output,
                                struct ssl_iostream **iostream_r,
                                const char **error_r)
 {
        struct ssl_iostream_settings set_copy = *set;
        set_copy.verify_remote_cert = TRUE;
-       return ssl_vfuncs->create(ctx, host, &set_copy, TRUE, input, output,
-                                 iostream_r, error_r);
+       return ssl_vfuncs->create(ctx, event_parent, host, &set_copy, TRUE,
+                                 input, output, iostream_r, error_r);
 }
 
 int io_stream_create_ssl_server(struct ssl_iostream_context *ctx,
                                const struct ssl_iostream_settings *set,
+                               struct event *event_parent,
                                struct istream **input, struct ostream **output,
                                struct ssl_iostream **iostream_r,
                                const char **error_r)
 {
-       return ssl_vfuncs->create(ctx, NULL, set, FALSE, input, output,
-                                 iostream_r, error_r);
+       return ssl_vfuncs->create(ctx, event_parent, NULL, set, TRUE,
+                                 input, output, iostream_r, error_r);
 }
 
 void ssl_iostream_unref(struct ssl_iostream **_ssl_io)
index 322448691fefca8d0b6e6f67d185329b8d42eab6..f9b82c2f7c1ee11321dee1433f1cdea757930edb 100644 (file)
@@ -57,11 +57,13 @@ int io_stream_ssl_global_init(const struct ssl_iostream_settings *set,
 
 int io_stream_create_ssl_client(struct ssl_iostream_context *ctx, const char *host,
                                const struct ssl_iostream_settings *set,
+                               struct event *event_parent,
                                struct istream **input, struct ostream **output,
                                struct ssl_iostream **iostream_r,
                                const char **error_r);
 int io_stream_create_ssl_server(struct ssl_iostream_context *ctx,
                                const struct ssl_iostream_settings *set,
+                               struct event *event_parent,
                                struct istream **input, struct ostream **output,
                                struct ssl_iostream **iostream_r,
                                const char **error_r);
index b2533acb8bc8be1cb2fe19e53d1e76529119b98b..2415ce8e862216193998ec7139a578fd5694043e 100644 (file)
@@ -216,12 +216,14 @@ static int test_iostream_ssl_handshake_real(struct ssl_iostream_settings *server
        }
 
        if (io_stream_create_ssl_server(server->ctx, server->set,
+                                       NULL,
                                        &server->input, &server->output,
                                        &server->iostream, &error) != 0) {
                ret = -1;
        }
 
        if (io_stream_create_ssl_client(client->ctx, client->hostname, client->set,
+                                       NULL,
                                        &client->input, &client->output,
                                        &client->iostream, &error) != 0) {
                ret = -1;
@@ -411,10 +413,11 @@ static void test_iostream_ssl_get_buffer_avail_size(void)
        test_assert(ssl_iostream_context_init_client(client->set, &client->ctx,
                    &error) == 0);
 
-       test_assert(io_stream_create_ssl_server(server->ctx, server->set,
+       test_assert(io_stream_create_ssl_server(server->ctx, server->set, NULL,
                                                &server->input, &server->output,
                                                &server->iostream, &error) == 0);
        test_assert(io_stream_create_ssl_client(client->ctx, "localhost", client->set,
+                                               NULL,
                                                &client->input, &client->output,
                                                &client->iostream, &error) == 0);
 
@@ -502,10 +505,11 @@ static void test_iostream_ssl_small_packets(void)
        client->other = server;
        server->other = client;
 
-       test_assert(io_stream_create_ssl_server(server->ctx, server->set,
+       test_assert(io_stream_create_ssl_server(server->ctx, server->set, NULL,
                                                &server->input, &server->output,
                                                &server->iostream, &error) == 0);
        test_assert(io_stream_create_ssl_client(client->ctx, "localhost", client->set,
+                                               NULL,
                                                &client->input, &client->output,
                                                &client->iostream, &error) == 0);
 
index fc74b5b0cd3b64459a0585dfd3f9dafe10b0aa35..30fb20ea6d2b890114252181692bba0699d3245d 100644 (file)
@@ -576,8 +576,9 @@ static int pop3c_client_ssl_init(struct pop3c_client *client)
        }
 
        if (io_stream_create_ssl_client(client->ssl_ctx, client->set.host,
-                                       &client->set.ssl_set, &client->input,
-                                       &client->output, &client->ssl_iostream, &error) < 0) {
+                                       &client->set.ssl_set, client->event,
+                                       &client->input, &client->output,
+                                       &client->ssl_iostream, &error) < 0) {
                i_error("pop3c(%s): Couldn't initialize SSL client: %s",
                        client->set.host, error);
                return -1;
index b33c2d6883c9d4394aee4b40c0ea7697dc238cc7..264e6ee92bfaac67713f72132e73f30b460650e1 100644 (file)
@@ -575,7 +575,7 @@ int client_init_ssl(struct client *client)
                        "Failed to initialize SSL server context: %s", error);
                return -1;
        }
-       if (io_stream_create_ssl_server(ssl_ctx, &ssl_set,
+       if (io_stream_create_ssl_server(ssl_ctx, &ssl_set, client->event,
                                        &client->input, &client->output,
                                        &client->ssl_iostream, &error) < 0) {
                e_error(client->event,
index 078096a92d6bd330a3ce15c2bd11ba248d26c539..da58b169963cfb7d7cfeb1265e7ca89412ea1ebd 100644 (file)
@@ -1038,6 +1038,7 @@ int login_proxy_starttls(struct login_proxy *proxy)
        }
 
        if (io_stream_create_ssl_client(ssl_ctx, proxy->host, &ssl_set,
+                                       proxy->event,
                                        &proxy->server_input,
                                        &proxy->server_output,
                                        &proxy->server_ssl_iostream,