ARC: cutthrough delivery may not be used with ARC signing
authorJeremy Harris <jgh146exb@wizmail.org>
Mon, 26 Mar 2018 14:59:25 +0000 (15:59 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Mon, 26 Mar 2018 16:34:17 +0000 (17:34 +0100)
doc/doc-txt/ChangeLog
doc/doc-txt/experimental-spec.txt
src/src/verify.c

index 525f47b31752b35a7c4affe1214ff65a06966333..cbc7f2baa5da087d3e1ecec72c997a31dcbca570 100644 (file)
@@ -181,6 +181,7 @@ JH/33 SPF: remove support for the "spf" ACL condition outcome values "err_temp"
 JH/34 Re-introduce enforcement of no cutthrough delivery on transports having
       transport-filters or DKIM-signing.  The restriction was lost in the
       consolidation of verify-callout and delivery SMTP handling.
 JH/34 Re-introduce enforcement of no cutthrough delivery on transports having
       transport-filters or DKIM-signing.  The restriction was lost in the
       consolidation of verify-callout and delivery SMTP handling.
+      Extend the restriction to also cover ARC-signing.
 
 
 Exim version 4.90
 
 
 Exim version 4.90
index 4be142e6675e9fb3100f111f4c9bfa85e56bd57f..4e244ac5fe93ffd83a80e0b8e3a0d687df86c83e 100644 (file)
@@ -820,6 +820,10 @@ Caveats:
    should try to stick to one ADMD, so pick a primary domain and use that for
    AR headers and outbound signing.
 
    should try to stick to one ADMD, so pick a primary domain and use that for
    AR headers and outbound signing.
 
+Signing is not compatible with cutthrough delivery; any (before expansion)
+value set for the option will result in cutthrough delivery not being
+used via the transport in question.
+
 
 
 --------------------------------------------------------------
 
 
 --------------------------------------------------------------
index 1df856604a066c012ae829ba2e669f56aa2c873d..1555838acecda3c5abbebea7d232af4691f1a2cf 100644 (file)
@@ -1033,10 +1033,10 @@ no_conn:
         cutthrough.delivery= FALSE;
         HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of transport filter\n");
         }
         cutthrough.delivery= FALSE;
         HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of transport filter\n");
         }
-      if (ob->dkim.dkim_domain)
+      if (ob->dkim.dkim_domain || ob->arc_sign)
         {
         cutthrough.delivery= FALSE;
         {
         cutthrough.delivery= FALSE;
-        HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of DKIM signing\n");
+        HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of DKIM or ARC signing\n");
         }
       }
 
         }
       }