From: Philip Hazel Date: Thu, 18 Nov 2004 10:35:18 +0000 (+0000) Subject: errors_to on a router was being ignored for bounce messages. X-Git-Tag: exim-4_50~98 X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=commitdiff_plain;h=652e1b65a8d4aebc6e1cf0ec9b9a29320a5ce8ef;ds=sidebyside errors_to on a router was being ignored for bounce messages. --- 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)?