From: Stephan Bosch Date: Sun, 14 Oct 2018 20:42:36 +0000 (+0200) Subject: submission: RCPT command: Move starting the backend transaction from submission-comma... X-Git-Tag: 2.3.9~1204 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3fe59d1a83459cfd3ef91a326b1d6d650b8c3b48;p=thirdparty%2Fdovecot%2Fcore.git submission: RCPT command: Move starting the backend transaction from submission-commands.c to submission-backend.c. This way, the transaction is only started from RCPT when the backend needs it at this point. --- diff --git a/src/submission/submission-backend.c b/src/submission/submission-backend.c index 12ec70130b..66c948723b 100644 --- a/src/submission/submission-backend.c +++ b/src/submission/submission-backend.c @@ -5,6 +5,7 @@ #include "istream.h" #include "istream-sized.h" +#include "submission-recipient.h" #include "submission-client.h" #include "submission-commands.h" #include "submission-backend.h" @@ -179,11 +180,17 @@ int submission_backend_cmd_rcpt(struct submission_backend *backend, struct smtp_server_cmd_ctx *cmd, struct submission_recipient *srcpt) { + struct smtp_server_transaction *trans; + if (backend->v.cmd_rcpt == NULL) { /* backend is not interested, respond right away */ return 1; } + trans = smtp_server_connection_get_transaction(cmd->conn); + if (trans != NULL) + submission_backend_trans_start(srcpt->backend, trans); + return backend->v.cmd_rcpt(backend, cmd, srcpt); } diff --git a/src/submission/submission-commands.c b/src/submission/submission-commands.c index 5c248a5347..2f94a185fc 100644 --- a/src/submission/submission-commands.c +++ b/src/submission/submission-commands.c @@ -159,12 +159,6 @@ int client_default_cmd_rcpt(struct client *client ATTR_UNUSED, struct smtp_server_cmd_ctx *cmd, struct submission_recipient *srcpt) { - struct smtp_server_transaction *trans; - - trans = smtp_server_connection_get_transaction(cmd->conn); - if (trans != NULL) - submission_backend_trans_start(srcpt->backend, trans); - return submission_backend_cmd_rcpt(srcpt->backend, cmd, srcpt); }