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(
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(
} 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);
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",
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);
}
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(
&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);
}
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);
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)
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);
}
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;
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);
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);
}
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;
"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,
}
if (io_stream_create_ssl_client(ssl_ctx, proxy->host, &ssl_set,
+ proxy->event,
&proxy->server_input,
&proxy->server_output,
&proxy->server_ssl_iostream,