Re: [exim] gotcha: chunking and predata

Top Page
Delete this message
Reply to this message
Author: Jeremy Harris
Date:  
To: exim-users
Subject: Re: [exim] gotcha: chunking and predata
On 16/01/17 21:57, Lena@??? wrote:
> In Exim 4.88 documentation:
>
>> If CHUNKING was advertised and a BDAT command sequence is received, the
>> acl_smtp_predata ACL is not run.
>
> Unexpected. Why?
> CHUNKING is advertised by default,
> for example Gmail issues BDAT commands.


To expand on what Heiko said:

There's no opportunity for an ACL run at the time
of reception of the initial BDAT to reliably affect
reception of the data chunk immediately following that
BDAT. This differs from a DATA command, where the
server sends a "go-ahead" response before the client
transmits any data.

You could argue that at least there's a chance that
a "deny" result from an ACL, sending a fail response
to the first BDAT, would preempt subsequent BDATs (though
even that is questionable given the lack of good definition
of the PIPELINING status of BDAT), and you could argue
that the existing pre-DATA ACL ought to be called
for symmetry even if the result of running might have
no effect. I didn't see a pressing case for it.

Did I miss one?

> I think this at least deserves a mention in NewStuff.


It's in the main docs. The NewStuff entry only gives
the bare-bones notification that the new feature has
been introduced; if you are interested you are expected
to read the full info in the main documentation.

The (previous, and current) main docs description of the
pre-DATA ACL says "when the DATA command is received";
it does not mention a BDAT command. I see no a-priori
reason that a run of the pre-DATA ACL should be expected
for a BDAT command.
--
Cheers,
Jeremy