summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2014-01-05 15:27:19 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2014-01-05 15:27:57 +0000
commit73305f2ddd22b79d59780a522e16b233228f2ad3 (patch)
tree0d6aec04d89baea53d9fbde4b542e7aa4f275753
parenta3bddaa8058346a11835f0d9947f3f60bb029fef (diff)
parentd6e96b36bd210fc2dbf8830202ff4daf0720ef1a (diff)
Explicitly disable cutthrough on transports having filters
-rw-r--r--doc/doc-docbook/spec.xfpt1
-rw-r--r--src/src/verify.c13
2 files changed, 9 insertions, 5 deletions
diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index f29c38722..0ed811ab5 100644
--- a/doc/doc-docbook/spec.xfpt
+++ b/doc/doc-docbook/spec.xfpt
@@ -27303,6 +27303,7 @@ line.
Delivery in this mode avoids the generation of a bounce mail to a (possibly faked)
sender when the destination system is doing content-scan based rejection.
+Cutthrough delivery is not supported via transport-filters.
.vitem &*control&~=&~debug/*&<&'options'&>
diff --git a/src/src/verify.c b/src/src/verify.c
index a09782bcd..911d67227 100644
--- a/src/src/verify.c
+++ b/src/src/verify.c
@@ -694,13 +694,15 @@ else
done = TRUE; /* so far so good; have response to HELO */
- /*XXX the EHLO response would be analyzed here for IGNOREQUOTA, SIZE, PIPELINING, AUTH */
- /* If we haven't authenticated, but are required to, give up. */
+ /*XXX the EHLO response would be analyzed here for IGNOREQUOTA, SIZE, PIPELINING */
- /*XXX "filter command specified for this transport" ??? */
- /* for now, transport_filter by cutthrough-delivery is not supported */
+ /* For now, transport_filter by cutthrough-delivery is not supported */
/* Need proper integration with the proper transport mechanism. */
-
+ if (cutthrough_delivery && addr->transport->filter_command)
+ {
+ cutthrough_delivery= FALSE;
+ HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of transport filter\n");
+ }
SEND_FAILED:
RESPONSE_FAILED:
@@ -722,6 +724,7 @@ else
}
}
+ /* If we haven't authenticated, but are required to, give up. */
/* Try to AUTH */
else done = smtp_auth(responsebuffer, sizeof(responsebuffer),