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

Alexey Melnikov <alexey.melnikov@isode.com> Fri, 09 November 2007 19:04 UTC

Return-path: <lemonade-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1IqZ9F-0005KH-G7; Fri, 09 Nov 2007 14:04:09 -0500
Received: from lemonade by megatron.ietf.org with local (Exim 4.43) id 1IqZ9E-0005JK-LL for lemonade-confirm+ok@megatron.ietf.org; Fri, 09 Nov 2007 14:04:08 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1IqZ9E-0005J2-BU for lemonade@ietf.org; Fri, 09 Nov 2007 14:04:08 -0500
Received: from rufus.isode.com ([62.3.217.251]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1IqZ9A-000268-V3 for lemonade@ietf.org; Fri, 09 Nov 2007 14:04:08 -0500
Received: from [172.16.1.99] (shiny.isode.com [62.3.217.250]) by rufus.isode.com (submission channel) via TCP with ESMTPA id <RzSvIQAnN7KU@rufus.isode.com>; Fri, 9 Nov 2007 19:04:03 +0000
Message-ID: <4734AEF8.4090201@isode.com>
Date: Fri, 09 Nov 2007 19:03:20 +0000
From: Alexey Melnikov <alexey.melnikov@isode.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915
X-Accept-Language: en-us, en
To: Peter Coates <peter.coates@sun.com>
Subject: Re: [lemonade] draft-gulbrandsen-imap-enable-03
References: <472B04FD.9020100@andrew.cmu.edu> <iI49OBVsjABTB7dA9GtwCA.md5@libertango.oryx.com> <473487D3.4020002@isode.com> <01a601c822f5$7c13bf60$743b3e20$%coates@sun.com>
In-Reply-To: <01a601c822f5$7c13bf60$743b3e20$%coates@sun.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 1676547e4f33b5e63227e9c02bd359e3
Cc: lemonade@ietf.org, ietf-imapext@imc.org
X-BeenThere: lemonade@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Enhancements to Internet email to support diverse service enivronments <lemonade.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/lemonade>, <mailto:lemonade-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:lemonade@ietf.org>
List-Help: <mailto:lemonade-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/lemonade>, <mailto:lemonade-request@ietf.org?subject=subscribe>
Errors-To: lemonade-bounces@ietf.org

Peter Coates wrote:

>What?  If Enabling an extension does not affect the CAPABILITY vector, and
>if the ENABLE command silenty ignores extensions the server does not want to
>allow or which it does 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
>  
>
Agreed, but this can (and I think should) be done in a way which doesn't 
contradict text I've suggested. See below.

>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
>  
>
I dislike that, because you now implicitly saying that there are magic 
extensions which don't work unless the client knows how to enable them. 
Really, the server should have advertised the CONDSTORE extension to 
begin with.

>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
>  
>
(Or just use the CAPABILITY response code: it serves the same purpose + 
can save a round trip in this case.)

So if you insist on being able to change the capability list, it is much 
better to return the updated list using the CAPABILITY response code. 
Clients should already be able to handle unsolicited updates, in 
particular because the CAPABILITY response code payload frequently 
changes after LOGIN/AUTHENTICATE.
This allows the client to figure out if an extension can be enabled 
after all.

> 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.
>  
>



_______________________________________________
lemonade mailing list
lemonade@ietf.org
https://www1.ietf.org/mailman/listinfo/lemonade
Supplemental Web Site:
http://www.standardstrack.com/ietf/lemonade