]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lmtp: lmtp-commands - Fix application of the lmtp_hdr_delivery_address setting.
authorStephan Bosch <stephan.bosch@open-xchange.com>
Wed, 13 Nov 2019 21:59:03 +0000 (22:59 +0100)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 25 Nov 2019 09:05:47 +0000 (09:05 +0000)
Its value was ignored. It got broken by the move to the new lib-smtp for v2.3.

src/lmtp/lmtp-commands.c

index 6a312134941f8ac0b9ba580fb3848581dea29126..c4d598982565df18eb3960d9e122070d493cf3a0 100644 (file)
@@ -115,8 +115,27 @@ cmd_data_create_added_headers(struct client *client,
        /* headers for local and proxied messages */
        proxy_offset = str_len(str);
        if (client->lmtp_set->lmtp_add_received_header) {
+               const struct lmtp_settings *lmtp_set = client->lmtp_set;
+               enum smtp_server_trace_rcpt_to_address rcpt_to_address =
+                       SMTP_SERVER_TRACE_RCPT_TO_ADDRESS_FINAL;
+
+               switch (lmtp_set->parsed_lmtp_hdr_delivery_address) {
+               case LMTP_HDR_DELIVERY_ADDRESS_NONE:
+                       rcpt_to_address =
+                               SMTP_SERVER_TRACE_RCPT_TO_ADDRESS_NONE;
+                       break;
+               case LMTP_HDR_DELIVERY_ADDRESS_FINAL:
+                       rcpt_to_address =
+                               SMTP_SERVER_TRACE_RCPT_TO_ADDRESS_FINAL;
+                       break;
+               case LMTP_HDR_DELIVERY_ADDRESS_ORIGINAL:
+                       rcpt_to_address =
+                               SMTP_SERVER_TRACE_RCPT_TO_ADDRESS_ORIGINAL;
+                       break;
+               }
+
                smtp_server_transaction_write_trace_record(
-                       str, trans, SMTP_SERVER_TRACE_RCPT_TO_ADDRESS_FINAL);
+                       str, trans, rcpt_to_address);
        }
 
        client->state.added_headers_local =