From 9f52626687360678d088eed0c14832f037f67c23 Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Mon, 14 Nov 2005 11:32:16 +0000 Subject: [PATCH] Correct message autoreply sends when including the original message with headers_only or body_only. --- doc/doc-txt/ChangeLog | 7 ++++++- src/src/transports/autoreply.c | 24 ++++++++++++++---------- 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; -- 2.30.2