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?