]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: RCPT command: Move starting the backend transaction from submission-comma...
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sun, 14 Oct 2018 20:42:36 +0000 (22:42 +0200)
committerStephan Bosch <stephan.bosch@dovecot.fi>
Sun, 14 Oct 2018 20:42:36 +0000 (22:42 +0200)
This way, the transaction is only started from RCPT when the backend needs it at this point.

src/submission/submission-backend.c
src/submission/submission-commands.c

index 12ec70130b60154976a820be70de031b4615b1eb..66c948723bd2406cc865a33606b260fe4aa1bdbf 100644 (file)
@@ -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);
 }
 
index 5c248a534715f9f46d2ebed32c3f10dc6988aa5e..2f94a185fc730afc7ae29f139fa7b7967c8312d1 100644 (file)
@@ -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);
 }