From c8ea159758f4f58b63cebc77067f53264a10f0cf Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Mon, 12 Dec 2005 11:02:44 +0000 Subject: [PATCH] Change $reply_address to use raw headers, to retain syntactic validity in created To: lines. --- doc/doc-txt/ChangeLog | 9 ++++++++- doc/doc-txt/NewStuff | 10 +++++----- src/src/expand.c | 12 +++++++++--- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index c5dd5dae9..e38a7f95e 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -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 ----------------- diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff index 604e59a9a..4d0863d7f 100644 --- a/doc/doc-txt/NewStuff +++ b/doc/doc-txt/NewStuff @@ -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. diff --git a/src/src/expand.c b/src/src/expand.c index 9de325d46..8fdc2de09 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -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; -- 2.30.2