summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2005-11-14 11:32:16 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2005-11-14 11:32:16 +0000
commit9f52626687360678d088eed0c14832f037f67c23 (patch)
tree483f3c76677e446fc5e4c7f1613a788470e847e5
parentd7ffbc127584135dbcd60869217aa7f3d45dcf70 (diff)
Correct message autoreply sends when including the original message with
headers_only or body_only.
-rw-r--r--doc/doc-txt/ChangeLog7
-rw-r--r--src/src/transports/autoreply.c24
2 files changed, 20 insertions, 11 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 9bb25b182..131c0bf3a 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.255 2005/11/14 10:46:27 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.256 2005/11/14 11:32:16 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -69,6 +69,11 @@ PH/07 When both +timestamp and +memory debugging was on, the value given by
called by the debug printing, thereby overwriting the timestamp buffer.
Debugging no longer uses the tod_stamp() function when +timestamp is set.
+PH/08 When the original message was included in an autoreply transport, it
+ always said "this is a copy of the message, including all the headers",
+ even if body_only or headers_only was set. It now gives an appropriate
+ message.
+
Exim version 4.54
-----------------
diff --git a/src/src/transports/autoreply.c b/src/src/transports/autoreply.c
index 02ac4f7b1..1b867d240 100644
--- a/src/src/transports/autoreply.c
+++ b/src/src/transports/autoreply.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/transports/autoreply.c,v 1.5 2005/06/27 14:29:44 ph10 Exp $ */
+/* $Cambridge: exim/src/src/transports/autoreply.c,v 1.6 2005/11/14 11:32:16 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -630,28 +630,32 @@ if (ff != NULL)
}
/* Copy the original message if required, observing the return size
-limit. */
+limit if we are returning the body. */
if (return_message)
{
- if (bounce_return_size_limit > 0)
+ uschar *rubric = (tblock->headers_only)?
+ US"------ This is a copy of the message's header lines.\n"
+ : (tblock->body_only)?
+ US"------ This is a copy of the body of the message, without the headers.\n"
+ :
+ US"------ This is a copy of the message, including all the headers.\n";
+
+ if (bounce_return_size_limit > 0 && !tblock->headers_only)
{
struct stat statbuf;
int max = (bounce_return_size_limit/DELIVER_IN_BUFFER_SIZE + 1) *
DELIVER_IN_BUFFER_SIZE;
if (fstat(deliver_datafile, &statbuf) == 0 && statbuf.st_size > max)
{
- fprintf(f, "\n"
-"------ This is a copy of the message, including all the headers.\n"
+ fprintf(f, "\n%s"
"------ The body of the message is " OFF_T_FMT " characters long; only the first\n"
-"------ %d or so are included here.\n\n", statbuf.st_size,
+"------ %d or so are included here.\n\n", rubric, statbuf.st_size,
(max/1000)*1000);
}
- else fprintf(f, "\n"
-"------ This is a copy of the message, including all the headers. ------\n\n");
+ else fprintf(f, "\n%s\n", rubric);
}
- else fprintf(f, "\n"
-"------ This is a copy of the message, including all the headers. ------\n\n");
+ else fprintf(f, "\n%s\n", rubric);
fflush(f);
transport_count = 0;