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 18/01/17 20:56, Evgeniy Berdnikov wrote:
>>     And you'd prefer before all the data is transmitted
>>     because that's a waste of bits and cpu.

>
> Right.
>
>>     Any more?

>>
>> What should be preferred practice
>> when CHUNKING is used?
>
> With BDAT syntax we have to mix "pre-data" and "post-data" approaches.
> Unfortunately, this way conflicts with RFC3030 which states:
>
>    A 250 response MUST be sent to each successful BDAT data block within
>    a mail transaction.


IMHO this leaves open the possibility of other responses. Specifically
for greylisting, a 4xx.

> So the "legal" way is to postpone 4xx response until the completion of
> data stream.


I think that is needlessly cautious. Sending a 4xx response to a
non-LAST BDAT doe not violate 3030.

> However, there is more
> efficient way: server can close socket on the receipt of BDAT, client
> should get EOF and process such transmission error as receipt of 4xx. :)


The trouble with that is that the client might treat the drop,
reasonably IMHO, as a transmission error - and retry immediately
since it doe not have an SMTP-level temp-error (4xx).

This is supposition, I admit - but dropping the connection feels ugly.
--
Cheers,
Jeremy