[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: [dev] Performance issues with IMP git Michael M Slusarz Thu Jan 08 12:00:23 2009

Quoting Jan Schneider <[EMAIL PROTECTED]>:

S (1231438991,2811): * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID
STARTTLS AUTH=PLAIN SASL-IR] neo Cyrus IMAP4 v2.3.11 server ready
C (1231438991,2817): 1 AUTHENTICATE PLAIN

Looking at this a bit deeper, another issue is why SASL-IR authentication is not being used? If SASL-IR is supported, we should be sending a '1 AUTHENTICATE PLAIN *AUTHDATA*' request.

A-ha. Looks like the issue has to do with caching of the capability string. Reading the RFC's, it is clear that the server does not have to send a full list of capabilities before the user is authenticated. If this is the case, the server MUST send the full list once authenticated. However, it is a bit unclear whether this full capability list must include ALL capabilities of the server (as every IMAP server I know of except Cyrus does) or only a list of capabilities not associated with authentication (as Cyrus does). Even though I think the way Cyrus does it is incorrect, that is irrelevant for purposes of writing a client to interact.

So once we login, and Cyrus automatically sends the capability list as part of the response to the authentication list, we grab this list because we are assuming it to be the full list. When the Imap ob is cached, this is the list that is used the next time it is unserialized. We ignore the capability list given by the server on initial connect (since we already have the list of capabilities). Since the list doesn't include SASL-IR, this is why we default to regular authentication mode. Still doesn't explain why the server is hanging there, but solves the issue why SASL-IR is not being used.

This would explain why the test script works fine but IMP doesn't (due to the serialization). Try the fix I just committed to Socket.php.


Michael Slusarz [EMAIL PROTECTED]

Horde developers mailing list - Join the hunt: http://horde.org/bounties/
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: [EMAIL PROTECTED]