RE: [lemonade] draft-gulbrandsen-imap-enable-03

Peter Coates <peter.coates@sun.com> Fri, 09 November 2007 17:26 UTC

Received: from balder-227.proper.com (localhost [127.0.0.1]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id lA9HQKQT022459 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 9 Nov 2007 10:26:20 -0700 (MST) (envelope-from owner-ietf-imapext@mail.imc.org)
Received: (from majordom@localhost) by balder-227.proper.com (8.13.5/8.13.5/Submit) id lA9HQK8t022458; Fri, 9 Nov 2007 10:26:20 -0700 (MST) (envelope-from owner-ietf-imapext@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to owner-ietf-imapext@mail.imc.org using -f
Received: from brmea-mail-3.sun.com (brmea-mail-3.Sun.COM [192.18.98.34]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id lA9HQHTX022446 for <ietf-imapext@imc.org>; Fri, 9 Nov 2007 10:26:18 -0700 (MST) (envelope-from peter.coates@sun.com)
Received: from fe-amer-10.sun.com ([192.18.109.80]) by brmea-mail-3.sun.com (8.13.6+Sun/8.12.9) with ESMTP id lA9HQHeh012185 for <ietf-imapext@imc.org>; Fri, 9 Nov 2007 17:26:17 GMT
Received: from conversion-daemon.mail-amer.sun.com by mail-amer.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) id <0JR90060119K1Z00@mail-amer.sun.com> (original mail from peter.coates@sun.com) for ietf-imapext@imc.org; Fri, 09 Nov 2007 10:26:17 -0700 (MST)
Received: from kluane ([199.247.229.42]) by mail-amer.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) with ESMTPSA id <0JR9009D11QLJL50@mail-amer.sun.com>; Fri, 09 Nov 2007 10:26:06 -0700 (MST)
Date: Fri, 09 Nov 2007 09:24:40 -0800
From: Peter Coates <peter.coates@sun.com>
Subject: RE: [lemonade] draft-gulbrandsen-imap-enable-03
In-reply-to: <473487D3.4020002@isode.com>
To: 'Alexey Melnikov' <alexey.melnikov@isode.com>, 'Arnt Gulbrandsen' <arnt@oryx.com>
Cc: lemonade@ietf.org, ietf-imapext@imc.org
Message-id: <01a601c822f5$7c13bf60$743b3e20$%coates@sun.com>
MIME-version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Content-type: text/plain; charset="us-ascii"
Content-language: en-ca
Content-transfer-encoding: 7bit
Thread-index: Acgi7mapDZxScV0TRK6OP6mgBJ9ZmQAAWyYQ
References: <472B04FD.9020100@andrew.cmu.edu> <iI49OBVsjABTB7dA9GtwCA.md5@libertango.oryx.com> <473487D3.4020002@isode.com>
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

What?  If Enabling an extension does not affect the CAPABILITY vector, and
if the ENABLE command silenty ignores extensions the server does not wan to
allow or which it doe not know, then after the sequence

 C: t1 CAPABILITY
 S: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 AUTH=DIGEST-MD5 ID LITERAL+ ENABLE
 S: t1 OK foo
 C: t2 ENABLE CONDSTORE X-GOOD-IDEA
 S: t2 OK foo

the client does not know whether CONDSTORE is enabled or not.  I assert that
either the enable command has to tell the client which things worked (or
which things didn't), or the capability vector has to change

Thus the sequence should be either
 C: t1 CAPABILITY
 S: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 AUTH=DIGEST-MD5 ID LITERAL+ ENABLE
 S: t1 OK foo
 C: t2 ENABLE CONDSTORE X-GOOD-IDEA
 S: t2 OK foo
 C: t3 CAPABILITY
 S: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 AUTH=DIGEST-MD5 ID LITERAL+ ENABLE
CONDSTORE
 S: t3 OK foo again

Or
 C: t1 CAPABILITY
 S: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 AUTH=DIGEST-MD5 ID LITERAL+ ENABLE
 S: t1 OK foo
 C: t2 ENABLE CONDSTORE X-GOOD-IDEA
 S: * OK [ENABLED CONDSTORE] or some variant of this
 S: t2 OK foo
 C: t3 CAPABILITY
 S: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 AUTH=DIGEST-MD5 ID LITERAL+ ENABLE
 S: t3 OK foo again

Peter


-----Original Message-----
From: owner-ietf-imapext@mail.imc.org
[mailto:owner-ietf-imapext@mail.imc.org] On Behalf Of Alexey Melnikov
Sent: November 9, 2007 08:16
To: Arnt Gulbrandsen
Cc: lemonade@ietf.org; ietf-imapext@imc.org
Subject: Re: [lemonade] draft-gulbrandsen-imap-enable-03


Arnt Gulbrandsen wrote:

>> I also don't like the fact that we're documenting that ENABLE can be 
>> used to probe for extensions (as per paragraph 2 in section 5).  We 
>> already have a command to list extensions.
>
> I'm perfectly happy taking that out, if that would be appropriate. I 
> thought this sort of thing was supposed to be listed in security 
> considerations.

Based on various off-list discussions I got impression that several 
people really disliked that.
So I am suggesting the following change:

Replace:
 The server MUST NOT change the CAPABILITY list as a result of
 executing ENABLE.

With:
 The server MUST NOT change the CAPABILITY list as a result of
 executing ENABLE, i.e. a CAPABILITY command issued right after
 an ENABLE command MUST list the same capabilities as a CAPABILITY
 command issued before the ENABLE command. The following example
 demonstrates that:
 
 C: t1 CAPABILITY
 S: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 AUTH=DIGEST-MD5 ID LITERAL+ ENABLE
 S: t1 OK foo
 C: t2 ENABLE CONDSTORE X-GOOD-IDEA
 S: t2 OK foo
 C: t3 CAPABILITY
 S: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 AUTH=DIGEST-MD5 ID LITERAL+ ENABLE
 S: t3 OK foo again
 
and also add:
 
 Note that according to [RFC3501] the list of advertised capabilities MAY
 change after a STARTTLS and/or AUTHENTICATE/LOGIN command. The ENABLE 
command
 doesn't change that.