From: Timo Sirainen Date: Wed, 21 Feb 2024 21:21:11 +0000 (+0200) Subject: lib-smtp: Add smtp_server_connection_terminate_full() X-Git-Tag: 2.4.0~1750 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=05dfd6b9b091ab972e2db39cee8035f2a09dea1e;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: Add smtp_server_connection_terminate_full() --- diff --git a/src/lib-smtp/smtp-server-connection.c b/src/lib-smtp/smtp-server-connection.c index 60dd0b3df5..f3ab38be89 100644 --- a/src/lib-smtp/smtp-server-connection.c +++ b/src/lib-smtp/smtp-server-connection.c @@ -1313,6 +1313,14 @@ void smtp_server_connection_close(struct smtp_server_connection **_conn, void smtp_server_connection_terminate(struct smtp_server_connection **_conn, const char *enh_code, const char *reason) +{ + smtp_server_connection_terminate_full(_conn, enh_code, reason, reason); +} + +void smtp_server_connection_terminate_full(struct smtp_server_connection **_conn, + const char *enh_code, + const char *reply_reason, + const char *log_reason) { struct smtp_server_connection *conn = *_conn; const char **reason_lines; @@ -1326,14 +1334,14 @@ void smtp_server_connection_terminate(struct smtp_server_connection **_conn, T_BEGIN { /* Add hostname prefix */ - reason_lines = t_strsplit_spaces(reason, "\r\n"); + reason_lines = t_strsplit_spaces(reply_reason, "\r\n"); reason_lines[0] = t_strconcat(conn->set.hostname, " ", reason_lines[0], NULL); smtp_server_connection_reply_lines(conn, 421, enh_code, reason_lines); - smtp_server_connection_close(&conn, reason); + smtp_server_connection_close(&conn, log_reason); } T_END; } diff --git a/src/lib-smtp/smtp-server.h b/src/lib-smtp/smtp-server.h index 9d74bdfec2..fc869baed6 100644 --- a/src/lib-smtp/smtp-server.h +++ b/src/lib-smtp/smtp-server.h @@ -476,6 +476,10 @@ void smtp_server_connection_close(struct smtp_server_connection **_conn, void smtp_server_connection_terminate(struct smtp_server_connection **_conn, const char *enh_code, const char *reason) ATTR_NULL(3); +void smtp_server_connection_terminate_full(struct smtp_server_connection **_conn, + const char *enh_code, + const char *reply_reason, + const char *log_reason); bool smtp_server_connection_data_check_state(struct smtp_server_cmd_ctx *cmd); void smtp_server_connection_data_chunk_init(struct smtp_server_cmd_ctx *cmd);