Review of draft-ietf-imapapnd-appendlimit-extension-00
Alexey Melnikov <[email protected]> Sun, 26 Jul 2015 15:53:11 +0100
| Newsgroups | gmane.ietf.imapext |
|---|---|
| Message-ID | <[email protected]> |
Hi, SM asked me to review the document, so I reread everything for the first time in a couple of months. Here are my comments: > 2. APPENDLIMIT Extension > > An IMAP server that supports APPENDLIMIT advertises this by including > the word APPENDLIMIT in its capability list. IMAP server shall publish > the supported mail upload size as part of CAPABILITY response. As per the recent discussion, the above text should be amended to make it clear that both "APPENDLIMIT" and "APPENDLIMIT=<value>" can be advertised. As traditionally IMAP uses exact match for capabilities, "APPENDLIMIT=..." is not going to work for a client that looks for exact match with "APPENDLIMIT". > The > advertised upload limit is common across the mailboxes, but client > can still issue SELECT/EXAMINE or LIST command to get the mailbox > specific upload limit set by the IMAP server. In this case, > APPENDLIMIT value obtained as part of SELECT/EXAMINE or LIST command > takes precedence over the value returned as part of CAPABILITY > response. [snip] > 3. Mailbox specific APPENDLIMIT > > IMAP server can still have mailbox specific APPENDLIMIT restriction, > which may not be advertised as part of CAPABILITY response. In this > case, client can issue SELECT/EXAMINE command to get the per mailbox > specific limit set by the server. Similarly, if client wish to know > the mailbox specific limit in authenticated state, can be done by > issuing the LIST command in combination with STATUS command. I think you should clarify here that a standalone STATUS command can also be used. > 3.1 SELECT response > > Client can get the per mailbox append limit by issuing the SELECT/ > EXAMINE command. APPENDLIMIT size to this mailbox is obtained as part > of untagged OK response. In this case, this APPENDLIMIT value will > supersede the value received as part of CAPABILITY response. If no > per-mailbox APPENDLIMIT is specified for a folder, but the server did > specify a common APPENDLIMIT in the CAPABILITY response, then the > common APPENDLIMIT applies to that folder. > > C: t2 SELECT INBOX > S: * 172 EXISTS > S: * OK [APPENDLIMIT 257890] Maximum upload limit > S: [...] > S: t2 OK [READ-WRITE] SELECT completed After Chris Newman's comment that a new SELECT/EXAMINE response code going to waste lots of bandwidth as most of the time it would be returned and the client is not going to care, I am wondering again if we should remove the SELECT response. But I don't have strong feelings on this. > In the above example, APPENDLIMIT represents the maximum upload size for > this mailbox. > > OK [APPENDLIMIT <n>] Maximum upload limit for this mailbox, in bytes. > Refer to section 5 for more information. If this > is missing, the client can always honour the > value received as part of CAPABILITY response. It occurred to me that this response code can also be returned in a NO response on a failed APPEND. It might be worth saying that. (This would cover a slightly different case from TOOBIG response code.) > 3.2 LIST response > > IMAP client can get the mailbox specific APPENDLIMIT in authenticated > state, where it do not need to issue SELECT/EXAMINE command. LIST > command in combination with STATUS command can be issued to get the per > mailbox specific APPENDLIMIT set by the server. > Refer RFC 5819 for the > usage of LIST command in combination with STATUS command. Note that a > server implementing this extension, is syntactically compatible with > RFC 5819, however support for RFC 5258 or RFC 5819 is not required, > when implementing this extension. After the discussion with Jamie I am wondering if we have to require use of extended LIST with the new APPENDLIMIT STATUS item. Maybe we can just require implementation of the APPENDLIMIT STATUS item, and STATUS-in-LIST will take care of this, if also advertised? > 5. Formal syntax > > The following syntax specification uses the Augmented Backus-Naur > Form (ABNF) notation as specified in [RFC5234] including the core > rules in Appendix B.1. [RFC3501] defines the non-terminals > "capability", "resp-text-code" and "status-att". > Except as noted otherwise, all alphabetic characters are case- > insensitive. The use of upper or lower case characters to define > token strings is for editorial clarity only. Implementations MUST > accept these strings in a case-insensitive fashion. > > appendlimit-cap = "APPENDLIMIT" ["=" append-limit-value] > capability /= appendlimit-cap > > appendlimit-respcode = "APPENDLIMIT" SP append-limit-value > resp-text-code /= appendlimit-respcode > > append-limit-value = 1*DIGIT > ; Unsigned 64-bit integer > ; (0 <= n < 18,446,744,073,709,551,615) After thinking more about this, I think we should revert to 32 bit limits, because if a message is >= 2**32 octets, FETCH RFC822.SIZE would be unable to return the message size, so other things would break. So I think we should have a separate extension that takes care of 64bit message/body part sizes. Best Regards, Alexey _______________________________________________ imapext mailing list [email protected] https://www.ietf.org/mailman/listinfo/imapext