On Sun, 27 Feb 2005, Russell Stuart wrote:
> Well, it did fix the original problem, but it also introduced a new
> one. Hopefully the patch below does the job properly. No doubt
> others will review this code - if you find a problem let me know as
> I have deployed it!
I have now got round to reviewing it, and checking out the
circumstances. It turns out that it is in fact a bug in a fix for a
previous problem (ChangeLog 4.11/85). It also turns out that there is a
neater patch than the one you posted (it doesn't produce any debugging
output, however). I'll copy it below (for 4.50).
Thanks for the diagnosis. It made my job a lot easier.
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
*** exim-4.50/src/deliver.c Thu Feb 17 14:49:11 2005
--- deliver.c Tue Mar 15 12:27:54 2005
***************
*** 2080,2085 ****
--- 2080,2086 ----
same characteristics. These are:
same transport
+ not previously delivered (see comment about 50 lines above)
same local part if the transport's configuration contains $local_part
same domain if the transport's configuration contains $domain
same errors address
***************
*** 2093,2098 ****
--- 2094,2100 ----
{
BOOL ok =
tp == next->transport &&
+ !previously_transported(next) &&
(!uses_lp || Ustrcmp(next->local_part, addr->local_part) == 0) &&
(!uses_dom || Ustrcmp(next->domain, addr->domain) == 0) &&
same_strings(next->p.errors_address, addr->p.errors_address) &&