summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2007-03-01 11:17:00 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2007-03-01 11:17:00 +0000
commit42855d71446546dd9914cadc25fb3781e184ac96 (patch)
treefa067a116d54869e34964b1675baf86fcc4310b6 /src
parentf71012fa5f0a4b586f1a982518c96aff29431e89 (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.c7
-rw-r--r--src/src/verify.c4
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;
}