prepend (not append) Resent-Message-ID and Resent-Date. fixes: #508
authorNigel Metheringham <nigel@exim.org>
Fri, 16 Oct 2009 12:33:09 +0000 (12:33 +0000)
committerNigel Metheringham <nigel@exim.org>
Fri, 16 Oct 2009 12:33:09 +0000 (12:33 +0000)
doc/doc-txt/ChangeLog
src/src/header.c
src/src/receive.c

index 6153e000b13934d39c1cbdf1a07b664ee5dd109e..ad502c68c56aaaf2f174c02e5c51948db6cc8bf4 100644 (file)
@@ -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
 -------------------------------------------
 
 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/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
 -----------------
 
 Exim version 4.69
 -----------------
index 1186dd9381ae99c0ccb1d3ea67aeb16b60c4ad21..dea5fbe654b83b053bbf1a53d6c5f65bac469b89 100644 (file)
@@ -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    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -118,7 +118,14 @@ if (name == NULL)
   else
     {
     hptr = &header_list;
   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;
     }
   }
 
     }
   }
 
index 0cc8832c39f53c3246740c73765f04d163cba0ba..3c307b07bd53a2c0c65bb9ac4836074ffed2ee93 100644 (file)
@@ -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    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -2337,8 +2337,9 @@ if (msgid_header == NULL &&
 
   /* Add the header line */
 
 
   /* 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
   }
 
 /* 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))
 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 */
 
 
 search_tidyup();    /* Free any cached resources */