IMAP4 IDLE does not work. imapd_index == NULL ?
Alexey Melnikov
alexey.melnikov at isode.com
Thu Feb 5 08:21:53 EST 2015
Hi Bernhard,
On 05/02/2015 13:04, Bernhard T wrote:
> Am 2015-02-04 um 12:10 schrieb Bron Gondwana:
>> Sure, you have to select a mailbox if you want to IDLE on it. If you have selected a mailbox, then imapd_index is that mailbox.
>>
>> Bron.
>>
>>
> Excellent Tip, Thank you!
> Problem Solved. *facepalm*
>
> This time instead of using the imap client's trace functionality,
> I used tcpdump to record the conversation between client and server.
> (and disabled tls, instead using ssh port forward for security)
>
> Turns out, the idling client was misconfigured and instead of selecting
> INBOX it selected '--'.
>
> All other IMAP servers I'm using it with, were very forgiving and
> refused to switch to '--', instead they let the client stay in the
> previously selected 'INBOX'. Thus when the client started 'IDLE' it
> worked as expected.
>
> Cyrus on the other hand, responded 'GDGA6 NO Mailbox does not exist',
> but DID switch the mailbox of the client from 'INBOX' to a
> Mailbox-Does-Not-Exist State.
>
> Thus the following 'IDLE' command did not succeed.
>
>
> So first, thanks for helping me track down this problem.
>
> Second I propose that Cyrus, if given an invalid mailbox name as
> argument to SELECT, stays in the previously selected mailbox if any,
> as this seems to be how other IMAP servers handle it.
This change would be in violation of RFC 3501. Which servers behave in
the way you describe?
More information about the Cyrus-devel
mailing list