Change $reply_address to use raw headers, to retain syntactic validity
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 12 Dec 2005 11:02:44 +0000 (11:02 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 12 Dec 2005 11:02:44 +0000 (11:02 +0000)
in created To: lines.

doc/doc-txt/ChangeLog
doc/doc-txt/NewStuff
src/src/expand.c

index c5dd5da..e38a7f9 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.271 2005/12/06 10:25:59 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.272 2005/12/12 11:02:44 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -19,6 +19,13 @@ PH/02 The ipliteral router was not recognizing addresses of the form user@
 
 PH/03 Added disable_ipv6.
 
+PH/04 Changed $reply_address to use the raw form of the headers instead of the
+      decoded form, because it is most often used to construct To: headers
+      lines in autoreplies, and the decoded form may well be syntactically
+      invalid. However, $reply_address has leading white space removed, and all
+      newlines turned into spaces so that the autoreply transport does not
+      grumble.
+
 
 Exim version 4.60
 -----------------
index 604e59a..4d0863d 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.78 2005/12/06 10:25:59 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.79 2005/12/12 11:02:44 ph10 Exp $
 
 New Features in Exim
 --------------------
@@ -13,10 +13,10 @@ Version 4.61
 
 PH/01 There is a new global option called disable_ipv6, which does exactly what
       its name implies. If set true, even if the Exim binary has IPv6 support,
-      no IPv6 activities take place. AAAA records are never looked up as a for
-      host names given in manual routing data or elsewhere. AAAA records that
-      are received from the DNS as additional data for MX records are ignored.
-      Any IPv6 addresses that are listed in local_interfaces, manualroute route
+      no IPv6 activities take place. AAAA records are never looked up for host
+      names given in manual routing data or elsewhere. AAAA records that are
+      received from the DNS as additional data for MX records are ignored. Any
+      IPv6 addresses that are listed in local_interfaces, manualroute route
       data, etc. are also ignored. If IP literals are enabled, the ipliteral
       router declines to handle IPv6 literal addresses.
 
index 9de325d..8fdc2de 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.48 2005/12/06 10:25:59 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.49 2005/12/12 11:02:44 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1426,12 +1426,18 @@ while (last > first)
     return tod_stamp(tod_log_datestamp);
 
     case vtype_reply:                          /* Get reply address */
-    s = find_header(US"reply-to:", exists_only, newsize, FALSE,
+    s = find_header(US"reply-to:", exists_only, newsize, TRUE,
       headers_charset);
     if (s == NULL || *s == 0)
       {
       *newsize = 0;                            /* For the *s==0 case */
-      s = find_header(US"from:", exists_only, newsize, FALSE, headers_charset);
+      s = find_header(US"from:", exists_only, newsize, TRUE, headers_charset);
+      }
+    if (s != NULL)
+      {
+      uschar *t;
+      while (isspace(*s)) s++;
+      for (t = s; *t != 0; t++) if (*t == '\n') *t = ' ';
       }
     return (s == NULL)? US"" : s;