[exim-cvs] Explicitly disable cutthrough on transports havin…

Top Page
Delete this message
Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] Explicitly disable cutthrough on transports having filters
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),