Gitweb:
http://git.exim.org/exim.git/commitdiff/d6e96b36bd210fc2dbf8830202ff4daf0720ef1a
Commit: d6e96b36bd210fc2dbf8830202ff4daf0720ef1a
Parent: aa26e1378803587c24924ad0055318959d597802
Author: Jeremy Harris <jgh146exb@???>
AuthorDate: Sun Dec 29 19:10:05 2013 +0000
Committer: Jeremy Harris <jgh146exb@???>
CommitDate: Sun Jan 5 15:23:24 2014 +0000
Explicitly disable cutthrough on transports having filters
---
doc/doc-docbook/spec.xfpt | 1 +
src/src/verify.c | 13 ++++++++-----
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index f29c387..0ed811a 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 a09782b..911d672 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),