From: Jeremy Harris Date: Sun, 10 Jul 2016 13:20:03 +0000 (+0100) Subject: Cutthrough: expand transport dkim_domain option when testing for dkim signing X-Git-Tag: exim-4_88_RC1~71 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/ae8386f03e54cc05f92fcb78b8edcf87184f29aa Cutthrough: expand transport dkim_domain option when testing for dkim signing --- diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index e38e2847e..128aef3d1 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -29044,7 +29044,7 @@ any ACL verb, including &%deny%& (though this is potentially useful only in a RCPT ACL). Headers will not be added to the message if the modifier is used in -DATA, MIME or DKIM ACLs for messages delivered by cutthrough routing. +DATA, MIME or DKIM ACLs for a message delivered by cutthrough routing. Leading and trailing newlines are removed from the data for the &%add_header%& modifier; if it then @@ -29145,8 +29145,8 @@ receiving a message). The message must ultimately be accepted for with any ACL verb, including &%deny%&, though this is really not useful for any verb that doesn't result in a delivered message. -Headers will not be removed to the message if the modifier is used in -DATA, MIME or DKIM ACLs for messages delivered by cutthrough routing. +Headers will not be removed from the message if the modifier is used in +DATA, MIME or DKIM ACLs for a message delivered by cutthrough routing. More than one header can be removed at the same time by using a colon separated list of header names. The header matching is case insensitive. Wildcards are diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index c1b43244b..0fe63f123 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -49,6 +49,12 @@ JH/11 Cutthrough: avoid using the callout hints db on a verify callout when JH/12 Cutthrough: disable when verify option success_on_redirect is used, and when routing results in more than one destination address. +JH/13 Cutthrough: expand transport dkim_domain option when testing for dkim + signing (which inhibits the cutthrough capability). Previously only + the presence of an option was tested; now an expansion evaluating as + empty is permissible (obviously it should depend only on data available + when the cutthrough connection is made). + Exim version 4.87 ----------------- diff --git a/src/src/verify.c b/src/src/verify.c index a73004028..3624af0bc 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -889,13 +889,14 @@ can do it there for the non-rcpt-verify case. For this we keep an addresscount. /* Need proper integration with the proper transport mechanism. */ if (cutthrough.delivery) { + uschar * s; if (addr->transport->filter_command) { cutthrough.delivery = FALSE; HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of transport filter\n"); } #ifndef DISABLE_DKIM - if (ob->dkim_domain) + else if ((s = ob->dkim_domain) && (s = expand_string(s)) && *s) { cutthrough.delivery = FALSE; HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of DKIM signing\n");