From: Timo Sirainen Date: Mon, 14 Jun 2021 15:05:19 +0000 (+0300) Subject: doveadm: Split off server_connection_input_cmd_error() X-Git-Tag: 2.4.0~4798 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f51145cd36cc03d8e92690eff1504891d8ae0c53;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Split off server_connection_input_cmd_error() --- diff --git a/src/doveadm/server-connection.c b/src/doveadm/server-connection.c index 6a222a8b2c..056584bd1c 100644 --- a/src/doveadm/server-connection.c +++ b/src/doveadm/server-connection.c @@ -422,6 +422,22 @@ static void server_connection_input(struct server_connection *conn) while (server_connection_input_one(conn)) ; } +static void +server_connection_input_cmd_error(struct server_connection *conn, + const char *line) +{ + struct doveadm_server_reply reply = { + .exit_code = doveadm_str_to_exit_code(line), + .error = line, + }; + if (reply.exit_code == DOVEADM_EX_UNKNOWN && + str_to_int(line, &reply.exit_code) < 0) { + /* old doveadm-server */ + reply.exit_code = EX_TEMPFAIL; + } + server_connection_callback(conn, &reply); +} + static bool server_connection_input_one(struct server_connection *conn) { const unsigned char *data; @@ -458,17 +474,7 @@ static bool server_connection_input_one(struct server_connection *conn) }; server_connection_callback(conn, &reply); } else if (line[0] == '-') { - line++; - struct doveadm_server_reply reply = { - .exit_code = doveadm_str_to_exit_code(line), - .error = line, - }; - if (reply.exit_code == DOVEADM_EX_UNKNOWN && - str_to_int(line, &reply.exit_code) < 0) { - /* old doveadm-server */ - reply.exit_code = EX_TEMPFAIL; - } - server_connection_callback(conn, &reply); + server_connection_input_cmd_error(conn, line+1); } else { i_error("doveadm server sent broken input " "(expected cmd reply): %s", line);