]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-server-recipient - Add debug logging for submitted RCPT reply
authorStephan Bosch <stephan.bosch@open-xchange.com>
Mon, 23 Mar 2026 22:28:34 +0000 (23:28 +0100)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 6 Apr 2026 17:25:10 +0000 (17:25 +0000)
src/lib-smtp/smtp-server-cmd-rcpt.c
src/lib-smtp/smtp-server-private.h
src/lib-smtp/smtp-server-recipient.c

index 54a38a632c4888c9242bcf912f8e045f379dd1db..50339077ea0abd8910407dade92bf943a4c28335 100644 (file)
@@ -55,6 +55,16 @@ cmd_rcpt_check_state(struct smtp_server_cmd_ctx *cmd, bool next_to_reply)
        return TRUE;
 }
 
+static void
+cmd_rcpt_replied(struct smtp_server_cmd_ctx *cmd,
+                struct smtp_server_cmd_rcpt *data)
+{
+       struct smtp_server_recipient *rcpt = data->rcpt;
+
+       smtp_server_recipient_replied(
+               rcpt, smtp_server_command_get_reply(cmd->cmd, 0));
+}
+
 static void
 cmd_rcpt_completed(struct smtp_server_cmd_ctx *cmd,
                   struct smtp_server_cmd_rcpt *data)
@@ -203,6 +213,8 @@ void smtp_server_cmd_rcpt(struct smtp_server_cmd_ctx *cmd,
 
        smtp_server_command_add_hook(command, SMTP_SERVER_COMMAND_HOOK_NEXT,
                                     cmd_rcpt_recheck, rcpt_data);
+       smtp_server_command_add_hook(command, SMTP_SERVER_COMMAND_HOOK_REPLIED,
+                                    cmd_rcpt_replied, rcpt_data);
        smtp_server_command_add_hook(command, SMTP_SERVER_COMMAND_HOOK_COMPLETED,
                                     cmd_rcpt_completed, rcpt_data);
        smtp_server_command_add_hook(command, SMTP_SERVER_COMMAND_HOOK_DESTROY,
index 47b2362694a249691a164e0935ebbb3e6e644a17..bc0756a9585391cd640353843a559964ae85bcb3 100644 (file)
@@ -347,6 +347,8 @@ void smtp_server_recipient_ref(struct smtp_server_recipient *rcpt);
 bool smtp_server_recipient_unref(struct smtp_server_recipient **_rcpt);
 void smtp_server_recipient_destroy(struct smtp_server_recipient **_rcpt);
 
+void smtp_server_recipient_replied(struct smtp_server_recipient *rcpt,
+                                  const struct smtp_server_reply *reply);
 bool smtp_server_recipient_approved(struct smtp_server_recipient **_rcpt);
 void smtp_server_recipient_denied(struct smtp_server_recipient *rcpt,
                                  const struct smtp_server_reply *reply);
index 8be8ead270280291be9545b56d4e8dd02eb6ffcf..2aef9644a68bb0afa9a2f9cd58d04e12c8583a36 100644 (file)
@@ -141,6 +141,13 @@ smtp_server_recipient_get_original(struct smtp_server_recipient *rcpt)
        return rcpt->params.orcpt.addr;
 }
 
+void smtp_server_recipient_replied(struct smtp_server_recipient *rcpt,
+                                 const struct smtp_server_reply *reply)
+{
+       e_debug(rcpt->event, "Reply submitted: %s",
+               smtp_server_reply_get_one_line(reply));
+}
+
 bool smtp_server_recipient_approved(struct smtp_server_recipient **_rcpt)
 {
        struct smtp_server_recipient *rcpt = *_rcpt;