Re: AD review of draft-ietf-imapapnd-rfc2088bis-03

Alexey Melnikov <[email protected]> Sun, 6 Mar 2016 21:29:21 +0000
Newsgroups gmane.ietf.imapext
Message-ID <[email protected]>
Hi Barry,

On 05/03/2016 18:36, Barry Leiba wrote:
>>>> Hm, but then I think the sentence is meaningless.  The server still
>>>> has to read and discard the literal, so whether it sends the BAD
>>>> before or after it does that hardly matters.  What are you really
>>>> trying to say with that parenthetical that's useful?
>>>
>>> This is a valuable implementation advice.
>>
>> This also potentially affects how client implementations are coded.
> 
> I don't agree that it's valuable as written, as I don't think it says
> enough to be useful.  Consider a non-expert implementor, who codes
> like this:
> 
> - Read up to CRLF
> - See "{666666+}" at the end
> - Send BAD
> - Now what?  Read the next command?  That won't work, because the
> client already sent the literal.  Close the socket?  With or without
> sending untagged BYE first?  And why would you want to close the
> socket when you've already said BAD to the command itself?  Are we
> advising servers to kick off clients that have protocol errors?  And
> then what if the client just reconnects?  Kick it off again?

But you know that this particular problem is not really solvable.

> Rather than having a cryptic parenthetical, if you want to give useful
> implementation advice it'd be better to give real advice about the
> options that are reasonable, and what the pros and cons are.  And I
> personally (just opinion here) don't think that sending BAD before
> discarding the literal is something implementors should be advised to
> do, even if some implementations happen to do it... unless one can
> articulate what advantages it gives to the server or to the client.

Oh, I think you misinterpreted what the text is trying to say: it
doesn't recommend discarding the literal. Implementations that return
BAD must still eat the data. But this sentence is saying that it is OK
to say BAD immediately after observing a large literal, without waiting
till the full command is received.

> If your argument is that sending BAD and then immediately closing the
> socket (or sending BAD, then BYE, then closing the socket), without
> bothering the read the literal... saves the server work and resources,
> then maybe it's reasonable advice.

This is not better than just sending BYE.

> But then the advice isn't just to
> send BAD -- it's the whole sequence, together.
> 
> Get what I'm trying to say?
> 
> b
> 
> _______________________________________________
> imapext mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/imapext
> 

_______________________________________________
imapext mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/imapext