idnits 2.17.00 (12 Aug 2021) /tmp/idnits21687/draft-ietf-morg-status-in-list-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** The document seems to lack a License Notice according IETF Trust Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009 Section 6.b -- however, there's a paragraph with a matching beginning. Boilerplate error? (You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Feb 2009 rather than one of the newer Notices. See https://trustee.ietf.org/license-info/.) Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Introduction section. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 12, 2009) is 4750 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 3501 (Obsoleted by RFC 9051) Summary: 3 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 IMAPEXT A. Melnikov 3 Internet-Draft Isode Limited 4 Intended status: Standards Track T. Sirainen 5 Expires: November 13, 2009 May 12, 2009 7 IMAP4 Extension for returning STATUS information in extended LIST 8 draft-ietf-morg-status-in-list-01 10 Status of this Memo 12 This Internet-Draft is submitted to IETF in full conformance with the 13 provisions of BCP 78 and BCP 79. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that 17 other groups may also distribute working documents as Internet- 18 Drafts. 20 Internet-Drafts are draft documents valid for a maximum of six months 21 and may be updated, replaced, or obsoleted by other documents at any 22 time. It is inappropriate to use Internet-Drafts as reference 23 material or to cite them other than as "work in progress." 25 The list of current Internet-Drafts can be accessed at 26 http://www.ietf.org/ietf/1id-abstracts.txt. 28 The list of Internet-Draft Shadow Directories can be accessed at 29 http://www.ietf.org/shadow.html. 31 This Internet-Draft will expire on November 13, 2009. 33 Copyright Notice 35 Copyright (c) 2009 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents in effect on the date of 40 publication of this document (http://trustee.ietf.org/license-info). 41 Please review these documents carefully, as they describe your rights 42 and restrictions with respect to this document. 44 Abstract 46 Many IMAP clients display information about total number of messages/ 47 total number of unseen messages in IMAP mailboxes. In order to do 48 that they are forced to issue a LIST or LSUB command, to list all 49 available mailboxes, followed by a STATUS command for each mailbox 50 found. This document provides an extension to LIST command that 51 allows the client to request STATUS information for mailboxes 52 together with other information typically returned by the LIST 53 command. 55 Note 57 A revised version of this draft document will be submitted to the RFC 58 editor as a Proposed Standard for the Internet Community. Discussion 59 and suggestions for improvement are requested, and should be sent to 60 morg@ietf.org. 62 Table of Contents 64 1. Conventions used in this document . . . . . . . . . . . . . . . 3 66 2. STATUS return option to LIST command . . . . . . . . . . . . . 3 68 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 70 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 4 72 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 4 74 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 76 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 78 8. Normative References . . . . . . . . . . . . . . . . . . . . . 6 80 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 6 82 1. Conventions used in this document 84 In examples, "C:" indicates lines sent by a client that is connected 85 to a server. "S:" indicates lines sent by the server to the client. 87 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 88 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 89 document are to be interpreted as described in RFC 2119 [Kwds]. 91 2. STATUS return option to LIST command 93 [RFC3501] explicitly disallows mailbox patterns in the STATUS 94 command. The main reason was to discourage frequent use of the 95 STATUS command by clients, as it might be quite expensive for an IMAP 96 server to perform. However this prohibition had resulted in an 97 opposite effect: a new generation of IMAP clients appeared, that 98 issues STATUS command for each mailbox returned by the LIST command. 99 This behaviour is suboptimal to say at least: it wastes extra 100 bandwidth and, in the case of a client that doesn't support IMAP 101 pipelining, also degrades performance by using too many round trips. 102 This document tries to remedy the situation by specifying a single 103 command that can be used by the client to request all the necessary 104 information. In order to achieve this goal this document is 105 extending the LIST command command with a new return option: STATUS. 106 This option takes STATUS data items as parameters. For each 107 selectable mailbox matching the list pattern and selection options, 108 the server MUST return an untagged LIST response followed by an 109 untagged STATUS response containing the information requested in the 110 STATUS return option. 112 If an attempted STATUS for a listed mailbox fails because the mailbox 113 can't be selected (e.g. if the "l" ACL right [ACL] is granted to the 114 mailbox and the "r" right is not granted, or due to a race condition 115 between LIST and STATUS changing the mailbox to \NoSelect), the 116 STATUS response MUST NOT be returned and the LIST response MUST 117 include the \NoSelect attribute. This means the server may have to 118 buffer the LIST reply until it has successfully looked up the 119 necessary STATUS information. 121 If the server runs into unexpected problems while trying to look up 122 the STATUS information, it MAY drop the corresponding STATUS reply. 123 In such situation the LIST command would still return a tagged OK 124 reply. 126 3. Examples 128 C: A01 LIST "" % RETURN (STATUS (MESSAGES UNSEEN)) 129 S: * LIST () "." "INBOX" 130 S: * STATUS "INBOX" (MESSAGES 17 UNSEEN 16) 131 S: * LIST () "." "foo" 132 S: * STATUS "foo" (MESSAGES 30 UNSEEN 29) 133 S: * LIST (\NoSelect) "." "bar" 134 S: A01 OK List completed. 136 "bar" mailbox isn't selectable, so it has no STATUS reply. 138 C: A02 LIST (SUBSCRIBED RECURSIVEMATCH)"" % RETURN (STATUS 139 (MESSAGES)) 140 S: * LIST (\Subscribed) "." "INBOX" 141 S: * STATUS "INBOX" (MESSAGES 17) 142 S: * LIST () "." "foo" (CHILDINFO ("SUBSCRIBED")) 143 S: A02 OK List completed. 145 LIST reply for "foo" is returned because it has matching children, 146 but no STATUS reply is returned because "foo" itself doesn't match 147 the selection criteria. 149 4. Formal Syntax 151 The following syntax specification uses the augmented Backus-Naur 152 Form (BNF) as described in [ABNF]. Terms not defined here are taken 153 from [RFC3501], [LISTEXT]. 155 return-option =/ status-option 157 status-option = "STATUS" SP "(" status-att *(SP status-att) ")" 158 ;; This ABNF production complies with 159 ;; syntax. 161 5. Security Considerations 163 This extension makes it a bit easier for clients to overload the 164 server by requesting STATUS information for a large number of 165 mailboxes. However as already noted in the introduction existing 166 clients already try to do that by generating a large number of STATUS 167 commands for each mailbox they are interested in. While performing 168 STATUS information retrieval for big lists of mailboxes a server 169 implementation needs to make sure that it can still serve other IMAP 170 connections and yield execution to other connections, when necessary. 172 6. IANA Considerations 174 IMAP4 capabilities are registered by publishing a standards track or 175 IESG approved experimental RFC. The registry is currently located 176 at: 178 http://www.iana.org/assignments/imap4-capabilities 180 This document defines the X-DRAFT-I00-LIST-STATUS [[anchor4: Note to 181 RFC Editor: fix before publication]] IMAP capability. IANA is 182 requested to add it to the registry. 184 IANA is also requested to add the following new LIST-EXTENDED option 185 to the IANA registry established by [LISTEXT]: 187 To: iana@iana.org 188 Subject: Registration of LIST-EXTENDED option STATUS 190 LIST-EXTENDED option name: STATUS 192 LIST-EXTENDED option type: RETURN 194 LIST-EXTENDED option description: Causes the LIST command to return 195 STATUS responses in addition to LIST responses. 197 Published specification : XXXX. 199 Security considerations: XXXX. 201 Intended usage: COMMON 203 Person and email address to contact for further information: Alexey 204 Melnikov 206 Owner/Change controller: iesg@ietf.org 208 7. Acknowledgements 210 Thanks to Philip Van Hoof who pointed out that STATUS and LIST 211 commands should be combined in order to optimize traffic and number 212 of round trips. 214 8. Normative References 216 [ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 217 Specifications: ABNF", RFC 5234, January 2008. 219 [ACL] Melnikov, A., "IMAP4 Access Control List (ACL) Extension", 220 RFC 4314. 222 [Kwds] Bradner, S., "Key words for use in RFCs to Indicate 223 Requirement Levels", RFC 2119, March 1997. 225 [LISTEXT] Leiba, B. and A. Melnikov, "IMAP4 LIST Command 226 Extensions", RFC 5258, 2008. 228 [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 229 4rev1", RFC 3501, March 2003. 231 Authors' Addresses 233 Alexey Melnikov 234 Isode Limited 235 5 Castle Business Village 236 36 Station Road 237 Hampton, Middlesex TW12 2BX 238 UK 240 Email: Alexey.Melnikov@isode.com 241 URI: http://www.melnikov.ca/ 243 Timo Sirainen 245 Email: tss@iki.fi