Explicitly disable cutthrough on transports having filters
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 29 Dec 2013 19:10:05 +0000 (19:10 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 5 Jan 2014 15:23:24 +0000 (15:23 +0000)
doc/doc-docbook/spec.xfpt
src/src/verify.c

index f29c38722ccb6e90a9461553b28b6e04e11c6ce2..0ed811ab5e1cfab5040d447ad9c7c233e21eb26e 100644 (file)
@@ -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'&>
index a09782bcdc4f556b0a1207bb0eafd86befdfe85e..911d67227ecfcce5f3ad79925836a5e5d823b12f 100644 (file)
@@ -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),