[Imap-protocol] Avoiding connection-loss

Mark Crispin mrc at CAC.Washington.EDU
Mon Sep 18 11:58:35 PDT 2006

On Mon, 18 Sep 2006, Arnt Gulbrandsen wrote:

>> However, it is one certain client that ever allows an IDLE to go for so

>> long, and we can be confident that client will never use UIDNEXT.

> Uh. Mine allows IDLE to go on for 50 seconds longer and uses UIDNEXT.

RFC 2177 states:

[...] clients using IDLE are advised to terminate the IDLE and
re-issue it at least every 29 minutes to avoid being logged off.

You like cutting things that close?

Do you really mean to say that your client increments its copy of UIDNEXT
every time EXISTS shows a new message (since UIDNEXT is normally NOT
presented except at SELECT time!), and then issues an error message if a
new message has a UID that is not .GE. that client calculated value?

Or, do you mean to say that your client increments its calculated value,
and then issues an error message if UIDNEXT in a subsequent session is not
.GE. that client calculated value?

> It's not a great matter, but I urge you to reconsider this. It is the

> reference implementation, after all.

The protocol violation is the kludge to prevent IDLE from ever timing out.
Removing that kludge would be better, if only ********* would fix its
broken client.

It's also not clear, given the definition of UIDNEXT, that it is even a
violation. The text says "when new messages are added to a mailbox, even
if those new messages are subsequently expunged." After all, no messages
were actually added to the mailbox; the EXISTS/EXPUNGE pair is a fake.

OK, granted, that's a slimy argument to make, but no slimier than other
arguments made by other people in the past. Don't I get to wallow in the
slime too, just once? ;-)

-- Mark --

Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.

More information about the Imap-protocol mailing list