diff options
author | Philip Hazel <ph10@hermes.cam.ac.uk> | 2007-03-01 11:17:00 +0000 |
---|---|---|
committer | Philip Hazel <ph10@hermes.cam.ac.uk> | 2007-03-01 11:17:00 +0000 |
commit | 42855d71446546dd9914cadc25fb3781e184ac96 (patch) | |
tree | fa067a116d54869e34964b1675baf86fcc4310b6 /src | |
parent | f71012fa5f0a4b586f1a982518c96aff29431e89 (diff) |
A :defer: message was being suppressed unless smtp_error_details was
set, unlike :fail:. This is wrong, so has been fixed.
Diffstat (limited to 'src')
-rw-r--r-- | src/src/acl.c | 7 | ||||
-rw-r--r-- | src/src/verify.c | 4 |
2 files changed, 7 insertions, 4 deletions
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; } |