[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IDLE and idle




On Wed Nov 22 13:51:31 2006, Arnt Gulbrandsen wrote:
RFC 3501 section 5.3 permits a server to send untagged unsolicited EXISTS responses to a client even when it's not processing any command, under certain circumstances.

I'm not familiar with any servers that do this. (UW sends OK, but my question is about EXISTS.) Are there any that send EXISTS, and if so, which?

Not that I'm aware of.

There's an edge case whereby a server sending EXISTS (Or RECENT) when no command is in progress can inadvertantly cause some confusion.

Specifically, when an EXISTS is sent at such a point that the client is sending, or has already sent, a SELECT command, the client has to be particularly careful about whether the EXISTS is in response to the SELECT, and thus relates to the subsequent mailbox, or unsolicited, and thus relates to the prior mailbox.

There are two workarounds for clients:

1) Issue UNSELECT before any SELECT, which disambiguates. This can be pipelined. (Without UNSELECT the issue is more complex, you need to do something like EXAMINE on a mailbox name known not to exist, or horrendously unlikely to exist.)

2) In principle, only the last EXISTS relates to the subsequent mailbox. The first EXISTS relates to the prior mailbox, unless there is only one.

In general, I prefer pipelining an UNSELECT.

Dave.
--
Dave Cridland - mailto:dave@xxxxxxxxxxxx - xmpp:dwd@xxxxxxxxxx
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade