]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-ssl-iostream: io_stream_create_ssl_client() - Move code to set verify_remote_cert...
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 31 Oct 2017 23:38:19 +0000 (01:38 +0200)
committerTimo Sirainen <tss@dovecot.fi>
Mon, 6 Nov 2017 23:09:00 +0000 (01:09 +0200)
Enable it in the generic SSL code instead of OpenSSL-specific code.

src/lib-ssl-iostream/iostream-openssl-context.c
src/lib-ssl-iostream/iostream-ssl.c

index d05e0c208a10ceef3e9e8c6dd9e446a89dd9dc50..ae35005fa18641d1edf013f45e291650715fdfb6 100644 (file)
@@ -577,14 +577,10 @@ int openssl_iostream_context_init_client(const struct ssl_iostream_settings *set
                                         struct ssl_iostream_context **ctx_r,
                                         const char **error_r)
 {
-       struct ssl_iostream_settings set_copy = *set;
        struct ssl_iostream_context *ctx;
        SSL_CTX *ssl_ctx;
 
-       /* ensure this is set to TRUE */
-       set_copy.verify_remote_cert = TRUE;
-
-       if (ssl_iostream_init_global(&set_copy, error_r) < 0)
+       if (ssl_iostream_init_global(set, error_r) < 0)
                return -1;
        if ((ssl_ctx = SSL_CTX_new(SSLv23_client_method())) == NULL) {
                *error_r = t_strdup_printf("SSL_CTX_new() failed: %s",
@@ -597,7 +593,7 @@ int openssl_iostream_context_init_client(const struct ssl_iostream_settings *set
        ctx->refcount = 1;
        ctx->ssl_ctx = ssl_ctx;
        ctx->client_ctx = TRUE;
-       if (ssl_iostream_context_init_common(ctx, &set_copy, error_r) < 0) {
+       if (ssl_iostream_context_init_common(ctx, set, error_r) < 0) {
                ssl_iostream_context_unref(&ctx);
                return -1;
        }
index 228c982eaf3aa6583302c34d6d6c09746b83c1fa..2daa04e1b1d6f0840ce605c654c6a8c737bd0773 100644 (file)
@@ -80,11 +80,16 @@ int ssl_iostream_context_init_client(const struct ssl_iostream_settings *set,
                                     struct ssl_iostream_context **ctx_r,
                                     const char **error_r)
 {
+       struct ssl_iostream_settings set_copy = *set;
+
+       /* ensure this is set to TRUE */
+       set_copy.verify_remote_cert = TRUE;
+
        if (!ssl_module_loaded) {
                if (ssl_module_load(error_r) < 0)
                        return -1;
        }
-       return ssl_vfuncs->context_init_client(set, ctx_r, error_r);
+       return ssl_vfuncs->context_init_client(&set_copy, ctx_r, error_r);
 }
 
 int ssl_iostream_context_init_server(const struct ssl_iostream_settings *set,