[Dovecot] Dovecot 2.0 and QUOTA capability
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).
After searching the lists, I see that this was fixed as a bug back in 1.0, but I guess it crept back in. :-)
1.0.7:
- OK Dovecot ready. . CAPABILITY
- CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS QUOTA STARTTLS AUTH=PLAIN . OK Capability completed.
2.0:
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready. . capability
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN . OK Capability completed.
-- Frode Nordahl
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
Den 8. apr. 2010 kl. 03.38 skrev Timo Sirainen <tss@iki.fi>:
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. :)
I was kind of expecting this answer, fair enough. I will start to send
patches to the clients I care about, and hope to get it fixed
upstream. Maby the world will become a better place as a result :-)
-- Frode Nordahl
On 08.04.2010 08:37, wrote Frode Nordahl:
Den 8. apr. 2010 kl. 03.38 skrev Timo Sirainen <tss@iki.fi>:
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. :)
I was kind of expecting this answer, fair enough. I will start to send patches to the clients I care about, and hope to get it fixed upstream. Maby the world will become a better place as a result :-)
-- Frode Nordahl
Seems this was recently implemented in Roundcube trunk
From main.inc.php.dist:
// By default IMAP capabilities are readed after connection to // IMAP server. In some cases, e.g. when using IMAP proxy, there's a // need to refresh the list after login. Set to True if you've got // this case. $rcmail_config['imap_force_caps'] = false;
I have not tested it yet however...
On 8.4.2010, at 22.55, e-frog wrote:
// By default IMAP capabilities are readed after connection to // IMAP server. In some cases, e.g. when using IMAP proxy, there's a // need to refresh the list after login. Set to True if you've got // this case. $rcmail_config['imap_force_caps'] = false;
I have not tested it yet however...
There's no need for this to be an option at least with Dovecot. The capabilities are pushed to client by Dovecot. Client should always update them when it sees them.
participants (3)
-
e-frog
-
Frode Nordahl
-
Timo Sirainen