From: Stephan Bosch Date: Thu, 22 Apr 2021 10:03:59 +0000 (+0200) Subject: lib-smtp: smtp-client-connection - Add smtp_client_connection_transactions_fail(... X-Git-Tag: 2.3.16~116 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f73471d04927eab4f5bdf28e078364514636bac4;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-client-connection - Add smtp_client_connection_transactions_fail() and use it. Use it to always fail the whole transaction first before the individual commands if possible. --- diff --git a/src/lib-smtp/smtp-client-connection.c b/src/lib-smtp/smtp-client-connection.c index 56864c04f5..c273630f4a 100644 --- a/src/lib-smtp/smtp-client-connection.c +++ b/src/lib-smtp/smtp-client-connection.c @@ -182,6 +182,19 @@ smtp_client_connection_transactions_fail_reply( } } +static void +smtp_client_connection_transactions_fail( + struct smtp_client_connection *conn, + unsigned int status, const char *error) +{ + struct smtp_reply reply; + + smtp_reply_init(&reply, status, error); + reply.enhanced_code.x = 9; + + smtp_client_connection_transactions_fail_reply(conn, &reply); +} + static void smtp_client_connection_login_callback(struct smtp_client_connection *conn, const struct smtp_reply *reply) @@ -1959,6 +1972,9 @@ void smtp_client_connection_disconnect(struct smtp_client_connection *conn) smtp_client_connection_login_fail( conn, SMTP_CLIENT_COMMAND_ERROR_ABORTED, "Disconnected from server"); + smtp_client_connection_transactions_fail( + conn, SMTP_CLIENT_COMMAND_ERROR_ABORTED, + "Disconnected from server"); smtp_client_connection_commands_fail( conn, SMTP_CLIENT_COMMAND_ERROR_ABORTED, "Disconnected from server"); @@ -2187,6 +2203,9 @@ void smtp_client_connection_unref(struct smtp_client_connection **_conn) smtp_client_connection_login_fail( conn, SMTP_CLIENT_COMMAND_ERROR_ABORTED, "Connection destroy"); + smtp_client_connection_transactions_fail( + conn, SMTP_CLIENT_COMMAND_ERROR_ABORTED, + "Connection destroy"); smtp_client_connection_commands_fail( conn, SMTP_CLIENT_COMMAND_ERROR_ABORTED, "Connection destroy");