From 42855d71446546dd9914cadc25fb3781e184ac96 Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Thu, 1 Mar 2007 11:17:00 +0000 Subject: [PATCH] A :defer: message was being suppressed unless smtp_error_details was set, unlike :fail:. This is wrong, so has been fixed. --- doc/doc-txt/ChangeLog | 6 +++++- src/src/acl.c | 7 +++++-- src/src/verify.c | 4 ++-- test/stdout/0365 | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 3202cc9c1..7cc55f84d 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.485 2007/02/26 14:07:04 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.486 2007/03/01 11:17:00 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -133,6 +133,10 @@ PH/29 SMTP synchronization checks are implemented when a command is read - PH/30 MH's patch to allow iscntrl() characters to be list separators. +PH/31 Unlike :fail:, a custom message specified with :defer: was not being + returned in the SMTP response when smtp_return_error_details was false. + This has been fixed. + Exim version 4.66 ----------------- diff --git a/src/src/acl.c b/src/src/acl.c index afbb93e5c..41058afa7 100644 --- a/src/src/acl.c +++ b/src/src/acl.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/acl.c,v 1.74 2007/02/14 15:33:40 ph10 Exp $ */ +/* $Cambridge: exim/src/src/acl.c,v 1.75 2007/03/01 11:17:00 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -1976,10 +1976,13 @@ else callout_overall, callout_connect, se_mailfrom, pm_mailfrom, NULL); HDEBUG(D_acl) debug_printf("----------- end verify ------------\n"); + *basic_errno = addr2.basic_errno; *log_msgptr = addr2.message; *user_msgptr = (addr2.user_message != NULL)? addr2.user_message : addr2.message; - *basic_errno = addr2.basic_errno; + + /* Allow details for temporary error if the address is so flagged. */ + if (testflag((&addr2), af_pass_message)) acl_temp_details = TRUE; /* Make $address_data visible */ deliver_address_data = addr2.p.address_data; diff --git a/src/src/verify.c b/src/src/verify.c index d71f7e774..666790601 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/verify.c,v 1.48 2007/02/06 12:19:27 ph10 Exp $ */ +/* $Cambridge: exim/src/src/verify.c,v 1.49 2007/03/01 11:17:00 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -855,6 +855,7 @@ if (addr != vaddr) vaddr->basic_errno = addr->basic_errno; vaddr->more_errno = addr->more_errno; vaddr->p.address_data = addr->p.address_data; + copyflag(vaddr, addr, af_pass_message); } return yield; } @@ -1279,7 +1280,6 @@ while (addr_new != NULL) } fprintf(f, "%s\n", cr); } - if (!full_info) return copy_error(vaddr, addr, DEFER); else if (yield == OK) yield = DEFER; } diff --git a/test/stdout/0365 b/test/stdout/0365 index 9df565eaf..0d6e07977 100644 --- a/test/stdout/0365 +++ b/test/stdout/0365 @@ -25,7 +25,7 @@ 550 failure message 250 Reset OK 250 OK -451 Temporary local problem - please try later +451 defer message 250 Reset OK 221 the.local.host.name closing connection 220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 -- 2.25.1