summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2012-04-29 18:22:56 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2012-06-04 14:57:02 +0100
commit528fde2aff25fbe284332ad2ec4b8cb5fc8c7859 (patch)
tree0af9393516072f04c2712bcb9db897e4a547da97 /src
parente4bdf6524e2611c6bc0279b33037c31eec6daa35 (diff)
Testsuite cases for basic cutthrough_delivery.
Also fixed bug where a predata acl was required for cutthrough.
Diffstat (limited to 'src')
-rw-r--r--src/src/smtp_in.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c
index 38162cd4c..9652a06e6 100644
--- a/src/src/smtp_in.c
+++ b/src/src/smtp_in.c
@@ -3773,12 +3773,14 @@ while (done <= 0)
}
/* If there is an ACL, re-check the synchronization afterwards, since the
- ACL may have delayed. */
+ ACL may have delayed. To handle cutthrough delivery enforce a dummy call
+ to get the DATA command sent. */
- if (acl_smtp_predata == NULL) rc = OK; else
+ if (acl_smtp_predata == NULL && cutthrough_fd < 0) rc = OK; else
{
+ uschar * acl= acl_smtp_predata ? acl_smtp_predata : US"accept";
enable_dollar_recipients = TRUE;
- rc = acl_check(ACL_WHERE_PREDATA, NULL, acl_smtp_predata, &user_msg,
+ rc = acl_check(ACL_WHERE_PREDATA, NULL, acl, &user_msg,
&log_msg);
enable_dollar_recipients = FALSE;
if (rc == OK && !check_sync()) goto SYNC_FAILURE;