Re: [imapext] AD review of draft-ietf-imapapnd-rfc2088bis-03
Alexey Melnikov <aamelnikov@fastmail.fm> Sat, 05 March 2016 08:07 UTC
Return-Path: <aamelnikov@fastmail.fm>
X-Original-To: imapext@ietfa.amsl.com
Delivered-To: imapext@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21D031A1A03 for <imapext@ietfa.amsl.com>; Sat, 5 Mar 2016 00:07:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y_4hbpgqMHKK for <imapext@ietfa.amsl.com>; Sat, 5 Mar 2016 00:07:05 -0800 (PST)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C7AF01A039B for <imapext@ietf.org>; Sat, 5 Mar 2016 00:07:04 -0800 (PST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 4070D207C3 for <imapext@ietf.org>; Sat, 5 Mar 2016 03:07:04 -0500 (EST)
Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Sat, 05 Mar 2016 03:07:04 -0500
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.fm; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=xGF5MDvprJss/Xtk+nWdSzlQOPM=; b=Gaqsup sIUga0o10BMQIFUMIF4CS2mQLTL61kQMY5lKvyJFX2qGUO08oeKKeCLWTy0vN5oY Z+vK6HXC++J6vkpvtH67YIb22LARrlKG3c3P4RFrllD4J+pkdGCR09E5arYEi7nt LmRy4YmtWHcH89B9OXEtRl37rZ32bqpRyUPj4=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=xGF5MDvprJss/Xt k+nWdSzlQOPM=; b=FKrHf05ZRitsM/UCZHprd5tbzeNjeaTt6Vb6CYEebHkUQCT sqC55jPZuL8O1W1odYj6QYWUV2xkg89HdExDxLOoZbEaA+qdlHeYg38gya8sIug5 OK2tw3baJXsErsJofYXJUQ1B7XYH8QucrMI8H5dP3UyUYBj/eTcDVaqxRfsA=
X-Sasl-enc: HrM8QfC9BiOJmZTaLV7fjawdHBOrUaa3tp3Ry1HxWcVb 1457165223
Received: from [10.230.244.212] (unknown [85.255.234.57]) by mail.messagingengine.com (Postfix) with ESMTPA id 864F0680123; Sat, 5 Mar 2016 03:07:03 -0500 (EST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (1.0)
From: Alexey Melnikov <aamelnikov@fastmail.fm>
X-Mailer: iPhone Mail (13D15)
In-Reply-To: <CALaySJJxkYW+w1wY7NNH73P5qXoxutYz2VeM4E23BG0U_U5p5g@mail.gmail.com>
Date: Sat, 05 Mar 2016 08:08:42 +0000
Content-Transfer-Encoding: quoted-printable
Message-Id: <1011FF8D-99AC-491F-A12A-B3DBAD55FAE9@fastmail.fm>
References: <CALaySJJxkYW+w1wY7NNH73P5qXoxutYz2VeM4E23BG0U_U5p5g@mail.gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Archived-At: <http://mailarchive.ietf.org/arch/msg/imapext/hZpUsuoM4DqZILZNZxFUwHK0190>
X-Mailman-Approved-At: Sun, 06 Mar 2016 07:05:15 -0800
Cc: "imapext@ietf.org" <imapext@ietf.org>
Subject: Re: [imapext] AD review of draft-ietf-imapapnd-rfc2088bis-03
X-BeenThere: imapext@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of IMAP extensions <imapext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imapext>, <mailto:imapext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/imapext/>
List-Post: <mailto:imapext@ietf.org>
List-Help: <mailto:imapext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imapext>, <mailto:imapext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Mar 2016 08:07:07 -0000
Hi Barry, Thank you for your review. > On 4 Mar 2016, at 23:03, Barry Leiba <barryleiba@computer.org> 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. > > -- Introduction -- > > "(RFC 3501)" should be a citation, "[RFC3501]". (And then you can > remove the citation at the beginning of Section 3, if you like (or > leave it, if you prefer).) > > -- Section 3 -- > > If the server does > not advertise either of the above capabilities, the client must use > synchronizing literals instead. > > Minor point, but I'd word this like this (because I find "instead" to > be a bit inapt): > > NEW > If the server does > not advertise either of the above capabilities, the client can only > use synchronizing literals. > END > > The protocol receiver of an IMAP server must check the end of every > received line > > That "must" should probably be "MUST". > > We probably should also take this opportunity to fix a bit of > confusion that's come up with respect to this paragraph in the past. > How about this?: > > OLD > The protocol receiver of an IMAP server must check the end of every > received line (a sequence of octets that end with a CRLF) for an open > brace ('{') followed by an octet count, a plus ('+'), and a close > brace ('}') immediately preceeding the CRLF. If it finds this > sequence, it is the octet count of a non-synchronizing literal and > the server MUST treat the specified number of following octets and > the following line as part of the same command. A server MAY still > process commands and reject errors on a line-by-line basis, as long > as it checks for non-synchronizing literals at the end of each line. > > NEW > The protocol receiver of an IMAP server MUST check the end of every > received line (a sequence of octets that ends with a CRLF) for an > open brace ('{') followed by an octet count, a plus ('+'), and a > close brace ('}') immediately preceeding the CRLF. If it finds this > sequence, it is the octet count of a non-synchronizing literal and > the server MUST treat the specified number of following octets and > the following octets through the next CRLF as part of the same > command. > > It's important to note that the literal is not delimited by CRLF. > It ends after the number of bytes specified by the octet count, and > the current command continues from there. There might be a CRLF > immediately after, which ends the command. Or there might be more > octets, specifying other command parameters, before the CRLF. If > a SPACE character is needed between parameters, it's important that > the SPACE appear after the literal, in its appropriate place. > > A server MAY still process commands and reject errors on a > line-by-line basis, as long as it checks for non-synchronizing > literals at the end of each line. > > END > > ...and... > > OLD > Example: > > C: A001 LOGIN {11+} > C: FRED FOOBAR {7+} > C: fat man > S: A001 OK LOGIN completed > > NEW > Example: > > C: A001 LOGIN {11+} > C: FRED FOOBAR {7+} > C: fat man > S: A001 OK LOGIN completed > > This is semantically equivalent to this version that uses quoted > strings instead of literals: > > C: A001 LOGIN "FRED FOOBAR" "fat man" > S: A001 OK LOGIN completed > > Note that the SPACE after FOOBAR in the first version corresponds > to the SPACE between the two quoted strings in the second. > END These look fine to me. > I used to get questions from implementors about the CRLF and SPACE > things. If you really think this is unnecessary, feel free to opt out > of this suggestion. I don't mind adding your text. > > -- Section 4 -- > > a compliant LITERAL+ server > implementation has to make a choice between several non-optimal > choices: > > There are only two choices, and in no one's reckoning does two count > as "several". I thought several was any number other than 1. > Maybe change "several" to "two"? > > 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")? No, the sentence is correct as written. Some servers send BAD right after observing the non-synchronising literal prefix and that is Ok. > > Please change "most of commands" to "most commands". > > "Denial Of Service attacks" shouldn't be capitalized, but should be > hyphenated; make it "denial-of-service attacks" (and similarly, remove > the capitals in Section 9). Ok. > > -- Section 5 -- > Substantive: Shouldn't references to "APPEND" be removed from here, > since we re-spun LITERAL- as applying to all commands? I double check, but I prefer to keep it. > 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. > > 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]. Hmm. Or it can close the connection. I will try to reword, as your text seems to imply that that is the only option. > > END > > Substantive: I also suggest adding this paragraph, to make things > perfectly clear: > > INSERT > Note that the form of the non-synchronizing literal does not change: > it still uses the "+" in the literal itself, even if the applicable > extension is "LITERAL-". > END Ok. > > -- Section 9 -- > > Section 4 motivates creation of the "LITERAL-" extension > that partially improves the situation. > > I would just say 'The "LITERAL-" extension partially improved this situation.' > > -- Section 10 -- > > OLD > This document requests that IANA updates the above registry to > include the entry for LITERAL+ capability pointing to this document. > > NEW > This document requests that IANA update the above registry to > replace the reference for LITERAL+ to point to this document. > > END Yes, good catch. > > (And as a nit, change "adds" to "add" in the next paragraph; it should > be subjunctive mood.) > > -- > Barry, ART Director
- [imapext] AD review of draft-ietf-imapapnd-rfc208… Barry Leiba
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Barry Leiba
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Alexey Melnikov
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Alexey Melnikov
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Barry Leiba
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Alexey Melnikov
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Alexey Melnikov
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Alexey Melnikov
- Re: [imapext] AD review of draft-ietf-imapapnd-rf… Barry Leiba