]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-server-cmd-rcpt - Make sure state is advanced to "RCPT TO" once comman...
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 17 Feb 2020 21:25:28 +0000 (22:25 +0100)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 21 Feb 2020 06:39:59 +0000 (06:39 +0000)
src/lib-smtp/smtp-server-cmd-rcpt.c

index 4024637b40d13b4da08268d62494447023abb139..ebf9078ff325ba5c16540ed86d58fe98a867edfc 100644 (file)
@@ -56,6 +56,13 @@ cmd_rcpt_completed(struct smtp_server_cmd_ctx *cmd,
        i_assert(conn->state.pending_rcpt_cmds > 0);
        conn->state.pending_rcpt_cmds--;
 
+       if (conn->state.state < SMTP_SERVER_STATE_RCPT_TO) {
+               i_assert(conn->state.state == SMTP_SERVER_STATE_MAIL_FROM);
+               smtp_server_connection_set_state(
+                       conn, SMTP_SERVER_STATE_RCPT_TO,
+                       smtp_address_encode(data->rcpt->path));
+       }
+
        i_assert(smtp_server_command_is_replied(command));
        if (!smtp_server_command_replied_success(command)) {
                conn->state.denied_rcpt_cmds++;