[dev] Performance issues with IMP git
Jan Schneider
jan at horde.org
Thu Jan 8 22:04:22 UTC 2009
Zitat von Michael M Slusarz <slusarz at horde.org>:
> Quoting Jan Schneider <jan at horde.org>:
>
>> 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.
Yes, that did it. SASL-IR is now used, thus no continuation, thus no delay.
Jan.
--
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/
More information about the dev
mailing list