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",
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;
}
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,