On Thu, 2010-04-08 at 02:39 +0200, Frode Nordahl wrote:
Hello,
In Dovecot 2.0 the QUOTA capability is not announced until after the user has logged in. This breaks quota-support in some webmail clients (Roundcube, Atmail, probably more).
This is pretty much intentional, because v1.x used to do horrible horrible things to get the capability line. I was hoping to avoid that in v2.0. This works for the most commonly used IMAP clients, so I don't think I'm going to change this. It's time to get the clients fixed instead. :) Besides, it's possible to support per-user capabilities, and presenting capabilities before login makes this impossible.
Dovecot v2.0 presents capabilities in two possible ways, depending on if client sent a CAPABILITY command:
a) the right way (use CAPABILITY imap resp code):
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready. x login user pass x OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
b) the wrong way (use untagged CAPABILITY), which is required to make it work with Outlook etc.:
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready. a capability
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN a OK Capability completed. b login user pass
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS b OK Logged in