From 1482a0e24a7f37ec6478adae2f6ecb5c2a9071b7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B8rnar=20Ness?= Date: Wed, 11 Apr 2018 22:27:04 +0200 Subject: [PATCH] lmtp: Add lmtp_add_received_header bool setting. Add the ability to prevent dovecot/lmtp from adding received header. This is useful if one needs to use LMTP, but does not want additional received headers because: 1) Dovecot does not have correct information to add to the headers, and causes misleading/incorrect information 2) Does not want to expose internal information The default value is true, which is equal to the current behavior. --- src/lmtp/lmtp-commands.c | 3 ++- src/lmtp/lmtp-settings.c | 2 ++ src/lmtp/lmtp-settings.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lmtp/lmtp-commands.c b/src/lmtp/lmtp-commands.c index f45bffd93b..4bac980ab9 100644 --- a/src/lmtp/lmtp-commands.c +++ b/src/lmtp/lmtp-commands.c @@ -114,7 +114,8 @@ cmd_data_create_added_headers(struct client *client, /* headers for local and proxied messages */ proxy_offset = str_len(str); - smtp_server_transaction_write_trace_record(str, trans); + if (client->lmtp_set->lmtp_add_received_header) + smtp_server_transaction_write_trace_record(str, trans); client->state.added_headers_local = p_strdup(client->state_pool, str_c(str)); diff --git a/src/lmtp/lmtp-settings.c b/src/lmtp/lmtp-settings.c index 04f725aa83..8c7036c5e3 100644 --- a/src/lmtp/lmtp-settings.c +++ b/src/lmtp/lmtp-settings.c @@ -62,6 +62,7 @@ static const struct setting_define lmtp_setting_defines[] = { DEF(SET_BOOL, lmtp_proxy), DEF(SET_BOOL, lmtp_save_to_detail_mailbox), DEF(SET_BOOL, lmtp_rcpt_check_quota), + DEF(SET_BOOL, lmtp_add_received_header), DEF(SET_UINT, lmtp_user_concurrency_limit), DEF(SET_ENUM, lmtp_hdr_delivery_address), DEF(SET_STR_VARS, lmtp_rawlog_dir), @@ -80,6 +81,7 @@ static const struct lmtp_settings lmtp_default_settings = { .lmtp_proxy = FALSE, .lmtp_save_to_detail_mailbox = FALSE, .lmtp_rcpt_check_quota = FALSE, + .lmtp_add_received_header = TRUE, .lmtp_user_concurrency_limit = 0, .lmtp_hdr_delivery_address = "final:none:original", .lmtp_rawlog_dir = "", diff --git a/src/lmtp/lmtp-settings.h b/src/lmtp/lmtp-settings.h index 59cf8ac1fe..aae84ca71a 100644 --- a/src/lmtp/lmtp-settings.h +++ b/src/lmtp/lmtp-settings.h @@ -17,6 +17,7 @@ struct lmtp_settings { bool lmtp_proxy; bool lmtp_save_to_detail_mailbox; bool lmtp_rcpt_check_quota; + bool lmtp_add_received_header; unsigned int lmtp_user_concurrency_limit; const char *lmtp_hdr_delivery_address; const char *lmtp_rawlog_dir; -- 2.47.3