From 5eb690a173fdc71d5326c05a2a6a9d87d159187a Mon Sep 17 00:00:00 2001 From: Nigel Metheringham Date: Fri, 16 Oct 2009 12:33:09 +0000 Subject: [PATCH 1/1] prepend (not append) Resent-Message-ID and Resent-Date. fixes: #508 --- doc/doc-txt/ChangeLog | 5 ++++- src/src/header.c | 11 +++++++++-- src/src/receive.c | 10 ++++++---- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 6153e000b..ad502c68c 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.570 2009/10/16 09:51:12 nm4 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.571 2009/10/16 12:33:09 nm4 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -114,6 +114,9 @@ NM/20 Bugzilla 167: bool: condition support NM/21 Bugzilla 665: gnutls_compat_mode to allow compatibility with broken clients Patch provided by Phil Pennock +NM/22 Bugzilla 508: prepend (not append) Resent-Message-ID and Resent-Date + Patch provided by Brad "anomie" Jorsch + Exim version 4.69 ----------------- diff --git a/src/src/header.c b/src/src/header.c index 1186dd938..dea5fbe65 100644 --- a/src/src/header.c +++ b/src/src/header.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/header.c,v 1.6 2007/01/08 10:50:18 ph10 Exp $ */ +/* $Cambridge: exim/src/src/header.c,v 1.7 2009/10/16 12:33:09 nm4 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -118,7 +118,14 @@ if (name == NULL) else { hptr = &header_list; - h = header_list; + + /* header_list->text can be NULL if we get here between when the new + received header is allocated and when it is acutally filled in. We want + that header to be first, so skip it for now. */ + + if (header_list->text == NULL) + hptr = &header_list->next; + h = *hptr; } } diff --git a/src/src/receive.c b/src/src/receive.c index 0cc8832c3..3c307b07b 100644 --- a/src/src/receive.c +++ b/src/src/receive.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/receive.c,v 1.49 2009/10/15 13:49:43 tom Exp $ */ +/* $Cambridge: exim/src/src/receive.c,v 1.50 2009/10/16 12:33:09 nm4 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -2337,8 +2337,9 @@ if (msgid_header == NULL && /* Add the header line */ - header_add(htype_id, "%sMessage-Id: <%s%s%s@%s>\n", resent_prefix, - message_id_external, (*id_text == 0)? "" : ".", id_text, id_domain); + header_add_at_position(FALSE, NULL, FALSE, htype_id, + "%sMessage-Id: <%s%s%s@%s>\n", resent_prefix, message_id_external, + (*id_text == 0)? "" : ".", id_text, id_domain); } /* If we are to log recipients, keep a copy of the raw ones before any possible @@ -2608,7 +2609,8 @@ to be more confusing if Exim adds one to all remotely-originated messages. */ if (!date_header_exists && ((sender_host_address == NULL && !suppress_local_fixups) || submission_mode)) - header_add(htype_other, "%sDate: %s\n", resent_prefix, tod_stamp(tod_full)); + header_add_at_position(FALSE, NULL, FALSE, htype_other, "%sDate: %s\n", + resent_prefix, tod_stamp(tod_full)); search_tidyup(); /* Free any cached resources */ -- 2.30.2