summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2018-02-07 12:11:22 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2018-02-07 12:11:22 +0000
commit051d5efab898146f3769c72e58af4577164d2dab (patch)
treecd1df03f2b614fdd2eb227b157c47c3c5ac4e06a /src
parent1955ffa1aad186705bae1a0868c4cc4902cc256e (diff)
Cutthrough: silently ignore ACL control when the message cannot be cutthrough-routed
Diffstat (limited to 'src')
-rw-r--r--src/src/acl.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/src/acl.c b/src/src/acl.c
index 9efc85844..5b30535e8 100644
--- a/src/src/acl.c
+++ b/src/src/acl.c
@@ -3251,6 +3251,8 @@ for (; cb != NULL; cb = cb->next)
break;
case CONTROL_CUTTHROUGH_DELIVERY:
+ {
+ uschar * ignored = NULL;
#ifndef DISABLE_PRDR
if (prdr_requested)
#else
@@ -3259,20 +3261,20 @@ for (; cb != NULL; cb = cb->next)
/* Too hard to think about for now. We might in future cutthrough
the case where both sides handle prdr and this-node prdr acl
is "accept" */
- *log_msgptr = string_sprintf("PRDR on %s reception\n", arg);
+ ignored = US"PRDR active";
else
{
if (deliver_freeze)
- *log_msgptr = US"frozen";
+ ignored = US"frozen";
else if (queue_only_policy)
- *log_msgptr = US"queue-only";
+ ignored = US"queue-only";
else if (fake_response == FAIL)
- *log_msgptr = US"fakereject";
+ ignored = US"fakereject";
else
{
if (rcpt_count == 1)
{
- cutthrough.delivery = TRUE;
+ cutthrough.delivery = TRUE; /* control accepted */
while (*p == '/')
{
const uschar * pp = p+1;
@@ -3288,13 +3290,13 @@ for (; cb != NULL; cb = cb->next)
}
}
else
- DEBUG(D_acl) debug_printf(" cutthrough request ignored for nonfirst rcpt\n");
- break;
+ ignored = US"nonfirst rcpt";
}
- *log_msgptr = string_sprintf("\"control=%s\" on %s item",
- arg, *log_msgptr);
}
- return ERROR;
+ DEBUG(D_acl) if (ignored)
+ debug_printf(" cutthrough request ignored on %s item\n", ignored);
+ }
+ break;
#ifdef SUPPORT_I18N
case CONTROL_UTF8_DOWNCONVERT: