summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-txt/ChangeLog6
-rw-r--r--src/src/deliver.c13
2 files changed, 13 insertions, 6 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 59bc0b94c..8eb25ac9e 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.31 2004/11/17 16:12:26 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.32 2004/11/18 10:35:18 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -134,6 +134,10 @@ Exim version 4.44
is omitted, a false condition yields an empty string. This makes it less
cumbersome to write custom ACL and router conditions.
+34. Failure to deliver a bounce message always caused it to be frozen, even if
+ there was an errors_to setting on the router. The errors_to setting is now
+ respected.
+
Exim version 4.43
-----------------
diff --git a/src/src/deliver.c b/src/src/deliver.c
index 741d7b79c..2bf141c16 100644
--- a/src/src/deliver.c
+++ b/src/src/deliver.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/deliver.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
+/* $Cambridge: exim/src/src/deliver.c,v 1.2 2004/11/18 10:35:19 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -1046,12 +1046,15 @@ else
setflag(addr, af_ignore_error);
/* Freeze the message if requested, or if this is a bounce message (or other
- message with null sender). However, don't freeze if errors are being ignored.
- The actual code to ignore occurs later, instead of sending a message. Logging
- of freezing occurs later, just before writing the -H file. */
+ message with null sender) and this address does not have its own errors
+ address. However, don't freeze if errors are being ignored. The actual code
+ to ignore occurs later, instead of sending a message. Logging of freezing
+ occurs later, just before writing the -H file. */
if (!testflag(addr, af_ignore_error) &&
- (addr->special_action == SPECIAL_FREEZE || sender_address[0] == 0))
+ (addr->special_action == SPECIAL_FREEZE ||
+ (sender_address[0] == 0 && addr->p.errors_address == NULL)
+ ))
{
frozen_info = (addr->special_action == SPECIAL_FREEZE)? US"" :
(sender_local && !local_error_message)?