[Dovecot] Capability info in hello message not complete?
Hi,
one Fedora user complains about not some troubles after update to dovecot 1.2. He suspects wrong capability information given by dovecot 1.2
In dovecot.conf he uses imap_capability= option. While response to 'A CAPABILITY' respects imap_capability value, the capability info in hello message does not.
for imap_capability=IMAP4 IMAP4rev1 ACL NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE STARTTLS AUTH=PLAIN
A CAPABILITY response is:
- CAPABILITY IMAP4 IMAP4rev1 ACL NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE STARTTLS AUTH=PLAIN
but hello message is:
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
But it seems even when imap_capability is not used capability in hello message is not complete:
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
vs.
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH STARTTLS AUTH=PLAIN
is this expected? Do you think capability information in hello message really can befool clients?
Regards, Michal Hlavinka
On Thu, 2009-10-01 at 14:59 +0200, Michal Hlavinka wrote:
Hi,
one Fedora user complains about not some troubles after update to dovecot 1.2. He suspects wrong capability information given by dovecot 1.2
In dovecot.conf he uses imap_capability= option. While response to 'A CAPABILITY' respects imap_capability value, the capability info in hello message does not.
for imap_capability=IMAP4 IMAP4rev1 ACL NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE STARTTLS AUTH=PLAIN
I suppose he's using Dovecot as a proxy? Because Dovecot doesn't support IMAP4 or THREAD=ORDEREDSUBJECT.
but hello message is:
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
Hmm. Yeah..
But it seems even when imap_capability is not used capability in hello message is not complete: .. is this expected? Do you think capability information in hello message really can befool clients?
The capability in greeting message is short on purpose. It's only enough capabilities to get client logged in. After login Dovecot sends an updated full capability list to the client. It uses a few different tricks to get most clients understand the change.
So the only potential problem I see here is if client understands the greeting capability and permanently remembers that the server supports LITERAL+, ID and ENABLE after login but the destination server actually doesn't. The other capabilities are relevant only before login. I'm not entirely sure what, if anything, I should do about this.
I'd anyway like to hear what exactly is the problem and with what client, preferably with IMAP traffic logs showing what's happening wrong.
On Thursday 01 October 2009 15:15:09 Timo Sirainen wrote:
On Thu, 2009-10-01 at 14:59 +0200, Michal Hlavinka wrote:
Hi,
one Fedora user complains about not some troubles after update to dovecot 1.2. He suspects wrong capability information given by dovecot 1.2
In dovecot.conf he uses imap_capability= option. While response to 'A CAPABILITY' respects imap_capability value, the capability info in hello message does not.
for imap_capability=IMAP4 IMAP4rev1 ACL NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE STARTTLS AUTH=PLAIN
I suppose he's using Dovecot as a proxy? Because Dovecot doesn't support IMAP4 or THREAD=ORDEREDSUBJECT.
yes, dovecot is used as proxy
but hello message is:
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
Hmm. Yeah..
But it seems even when imap_capability is not used capability in hello message is not complete:
..
is this expected? Do you think capability information in hello message really can befool clients?
The capability in greeting message is short on purpose. It's only enough capabilities to get client logged in. After login Dovecot sends an updated full capability list to the client. It uses a few different tricks to get most clients understand the change.
So the only potential problem I see here is if client understands the greeting capability and permanently remembers that the server supports LITERAL+, ID and ENABLE after login but the destination server actually doesn't. The other capabilities are relevant only before login. I'm not entirely sure what, if anything, I should do about this.
I'd anyway like to hear what exactly is the problem and with what client, preferably with IMAP traffic logs showing what's happening wrong.
forwarded info: The imap-server is dbmail which supports "IMAP4 IMAP4rev1 ACL NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE" and with dovecot version 1.1 it worked fine
The problem sue is "LITERAL+" what dbmail does not support. The problem client was apple iphone
On Tuesday 06 October 2009 15:35:20 Michal Hlavinka wrote:
On Thursday 01 October 2009 15:15:09 Timo Sirainen wrote:
On Thu, 2009-10-01 at 14:59 +0200, Michal Hlavinka wrote:
Hi,
one Fedora user complains about not some troubles after update to dovecot 1.2. He suspects wrong capability information given by dovecot 1.2
In dovecot.conf he uses imap_capability= option. While response to 'A CAPABILITY' respects imap_capability value, the capability info in hello message does not.
for imap_capability=IMAP4 IMAP4rev1 ACL NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE STARTTLS AUTH=PLAIN
I suppose he's using Dovecot as a proxy? Because Dovecot doesn't support IMAP4 or THREAD=ORDEREDSUBJECT.
yes, dovecot is used as proxy
but hello message is:
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
Hmm. Yeah..
But it seems even when imap_capability is not used capability in hello message is not complete:
..
is this expected? Do you think capability information in hello message really can befool clients?
The capability in greeting message is short on purpose. It's only enough capabilities to get client logged in. After login Dovecot sends an updated full capability list to the client. It uses a few different tricks to get most clients understand the change.
So the only potential problem I see here is if client understands the greeting capability and permanently remembers that the server supports LITERAL+, ID and ENABLE after login but the destination server actually doesn't. The other capabilities are relevant only before login. I'm not entirely sure what, if anything, I should do about this.
would it be possible to: a) send content of imap_capability in greeting message? It should be user's responsibility if it's set to something "weird"
b) don't send capability in greeting message if imap_capability is set
c) resurrect login_greeting_capability option
d) something else? :)
I'd anyway like to hear what exactly is the problem and with what client, preferably with IMAP traffic logs showing what's happening wrong.
forwarded info: The imap-server is dbmail which supports "IMAP4 IMAP4rev1 ACL NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE" and with dovecot version 1.1 it worked fine
The problem sue is "LITERAL+" what dbmail does not support. The problem client was apple iphone
On Tue, 2009-10-13 at 17:26 +0200, Michal Hlavinka wrote:
would it be possible to: a) send content of imap_capability in greeting message? It should be user's responsibility if it's set to something "weird"
I guess I could do this.
b) don't send capability in greeting message if imap_capability is set
c) resurrect login_greeting_capability option
These have the problem of making Dovecot non-compliant with LEMONADE extensions.
On Tuesday 13 October 2009 19:10:15 Timo Sirainen wrote:
On Tue, 2009-10-13 at 17:26 +0200, Michal Hlavinka wrote:
would it be possible to: a) send content of imap_capability in greeting message? It should be user's responsibility if it's set to something "weird"
I guess I could do this.
"could" - does it mean you are waiting for my response? If yes this option is fine for me, since it should fix the issue.
/me not native english speaker :)
b) don't send capability in greeting message if imap_capability is set
c) resurrect login_greeting_capability option
These have the problem of making Dovecot non-compliant with LEMONADE extensions.
these were just some ideas, it's not required to do all of them to fix iphone imap client.
On Tue, 2009-10-20 at 17:10 +0200, Michal Hlavinka wrote:
On Tuesday 13 October 2009 19:10:15 Timo Sirainen wrote:
On Tue, 2009-10-13 at 17:26 +0200, Michal Hlavinka wrote:
would it be possible to: a) send content of imap_capability in greeting message? It should be user's responsibility if it's set to something "weird"
I guess I could do this.
"could" - does it mean you are waiting for my response? If yes this option is fine for me, since it should fix the issue.
It meant I added it to my TODO list, but hadn't yet got around to doing it. Anyway, done now: http://hg.dovecot.org/dovecot-1.2/rev/ab32d7e2c0d6
On Tuesday 20 October 2009 21:49:45 Timo Sirainen wrote:
On Tue, 2009-10-20 at 17:10 +0200, Michal Hlavinka wrote:
On Tuesday 13 October 2009 19:10:15 Timo Sirainen wrote:
On Tue, 2009-10-13 at 17:26 +0200, Michal Hlavinka wrote:
would it be possible to: a) send content of imap_capability in greeting message? It should be user's responsibility if it's set to something "weird"
I guess I could do this.
"could" - does it mean you are waiting for my response? If yes this option is fine for me, since it should fix the issue.
It meant I added it to my TODO list, but hadn't yet got around to doing it. Anyway, done now: http://hg.dovecot.org/dovecot-1.2/rev/ab32d7e2c0d6
Reporter has confirmed that iPhone works fine now. thanks
participants (2)
-
Michal Hlavinka
-
Timo Sirainen