From bae10a7571e1873b5687faa731956896790dc64b Mon Sep 17 00:00:00 2001 From: Timo Sirainen <timo.sirainen@open-xchange.com> Date: Mon, 8 Mar 2021 17:12:08 +0200 Subject: [PATCH] managesieve: Move finishing istream to client_create_finish() --- src/managesieve/main.c | 1 + src/managesieve/managesieve-client.c | 20 +++++++++++--------- src/managesieve/managesieve-client.h | 1 + 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/managesieve/main.c b/src/managesieve/main.c index 158246c43..49ceac5fc 100644 --- a/src/managesieve/main.c +++ b/src/managesieve/main.c @@ -172,6 +172,7 @@ client_create_from_input(const struct mail_storage_service_input *input, client = client_create(fd_in, fd_out, input->session_id, event, mail_user, user, set); + client_create_finish(client); T_BEGIN { client_add_input(client, input_buf); } T_END; diff --git a/src/managesieve/managesieve-client.c b/src/managesieve/managesieve-client.c index cf1b0cfa2..bacf46002 100644 --- a/src/managesieve/managesieve-client.c +++ b/src/managesieve/managesieve-client.c @@ -154,7 +154,6 @@ client_create(int fd_in, int fd_out, const char *session_id, o_stream_set_flush_callback(client->output, client_output, client); - client->io = io_add_istream(client->input, client_input, client); client->last_input = ioloop_time; client->to_idle = timeout_add(CLIENT_IDLE_TIMEOUT_MSECS, client_idle_timeout, client); @@ -165,14 +164,6 @@ client_create(int fd_in, int fd_out, const char *session_id, client->cmd.event = event_create(client->event); client->user = user; - if (set->rawlog_dir[0] != '\0') { - (void)iostream_rawlog_create(set->rawlog_dir, &client->input, - &client->output); - } - - client->parser = managesieve_parser_create( - client->input, set->managesieve_max_line_length); - client->svinst = svinst; client->storage = storage; @@ -194,6 +185,17 @@ client_create(int fd_in, int fd_out, const char *session_id, return client; } +void client_create_finish(struct client *client) +{ + if (client->set->rawlog_dir[0] != '\0') { + (void)iostream_rawlog_create(client->set->rawlog_dir, + &client->input, &client->output); + } + client->parser = managesieve_parser_create( + client->input, client->set->managesieve_max_line_length); + client->io = io_add_istream(client->input, client_input, client); +} + static const char *client_stats(struct client *client) { const struct var_expand_table logout_tab[] = { diff --git a/src/managesieve/managesieve-client.h b/src/managesieve/managesieve-client.h index 8367c259c..6053eb6a8 100644 --- a/src/managesieve/managesieve-client.h +++ b/src/managesieve/managesieve-client.h @@ -91,6 +91,7 @@ client_create(int fd_in, int fd_out, const char *session_id, struct event *event, struct mail_user *user, struct mail_storage_service_user *service_user, const struct managesieve_settings *set); +void client_create_finish(struct client *client); void client_destroy(struct client *client, const char *reason); void client_dump_capability(struct client *client); -- GitLab