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

Alexey Melnikov <[email protected]> Sun, 6 Mar 2016 21:21:43 +0000
Newsgroups gmane.ietf.imapext
Message-ID <[email protected]>
Hi Barry,
I've applied most of the comments (thank you!). Regarding the two
remaining issues:

On 04/03/2016 23:03, Barry Leiba wrote:
> Here's my review of draft-ietf-imapapnd-rfc2088bis-03.  Much of this
> is editorial, but there are a couple of substantive things here.


> In bullet 1:
> 
>        (The server is allowed to send the tagged BAD/NO response before
>        reading the whole non-synchronizing literal.)
> 
> Substantive: Shouldn't that be "the server is not allowed" (missing "not")?

I reply to this in a separate email.

> 
> -- Section 5 --
> Substantive: Shouldn't references to "APPEND" be removed from here,
> since we re-spun LITERAL- as applying to all commands?  Also, the last
> sentence doesn't really make sense.  In order to reject the command
> with BAD and TOOBIG, the server has to read (and discard) the literal
> -- that is, it's already processing according to bullet 1 in Section
> 4.

I fixed the problem you stated in the last sentence, see below.

> So:
> 
> OLD
>    The "LITERAL-" extension is almost identical to "LITERAL+", with one
>    exception: when "LITERAL-" is advertised, non-synchronizing literals
>    used in any command MUST NOT be larger than 4096 bytes.  Any literal
>    larger than 4096 bytes MUST be sent as an RFC 3501 synchronizing
>    literal.  A "LITERAL-" compliant server that encounters a non-
>    synchronizing literal in APPEND larger than 4096 bytes MUST reject
>    such APPEND command with a tagged BAD response that contains the
>    TOOBIG response code [RFC4469].  It then MAY proceed as described in
>    Section 4.
> 
> NEW
>    The "LITERAL-" extension is almost identical to "LITERAL+", with one
>    exception: when "LITERAL-" is advertised, non-synchronizing literals
>    used in any command MUST NOT be larger than 4096 bytes.  Any literal
>    larger than 4096 bytes MUST be sent as an RFC 3501 synchronizing
>    literal.  A "LITERAL-" compliant server that encounters a non-
>    synchronizing literal larger than 4096 bytes MUST read (and discard)
>    the literal, and then reject the command with a tagged BAD response
>    that contains the TOOBIG response code [RFC4469].
> 
> END

Unfortunately TOOBIG is defined as:

4.2.  TOOBIG Response

   The TOOBIG response code is returned if the resulting message will
   exceed the 4-GB IMAP message limit.  This might happen, for example,
   if the client specifies 3 URLs for 2-GB messages.  Note that even if
   the server doesn't return TOOBIG, it still has to be defensive
   against misbehaving or malicious clients that try to construct a
   message over the 4-GB limit.  The server may also wish to return the
   TOOBIG response code if the resulting message exceeds a server-
   specific message size limit.

So this is really APPEND specific. And I think having a response code is
important to debugging and problem diagnostic. So I initially rewrote
the last sentence as:

   A "LITERAL-" compliant server that encounters a non-synchronizing
   literal larger than 4096 bytes MUST read (and discard) the literal,
   and then reject the command with a tagged BAD response. If
   responding to an APPEND command, the tagged BAD response that
   contains the TOOBIG response code <xref target="RFC4469"/>.

However, I realized that the server should still be allowed to return
BYE and disconnect. So my final version is:

   A "LITERAL-" compliant server that encounters a non-synchronizing
   literal larger than 4096 bytes proceeds as described in
   Section 4. If responding to an APPEND command, the tagged BAD
   response MUST contains the TOOBIG response code [RFC4469].
   If responding with untagged BYE response, it SHOULD include
   the TOOBIG response code.

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