Hi,
thank you for your answer. I see I am dumb, but I am willing to learn.

> I think that what may be happening is that you are sending these updates
> when no command is in progress, and have not thoroughly grasped the
> implications of RFC 3501 section 5.3.

Most certainly so. 

* 5.3.    Response when no Command in Progress
*
*   Server implementations are permitted to send an untagged response
*   (except for EXPUNGE) while there is no command in progress.  Server
*   implementations that send such responses MUST deal with flow control
*   considerations.  Specifically, they MUST either (1) verify that the
*   size of the data does not exceed the underlying transport's available
*   window size, or (2) use non-blocking writes.

I have been coding TCP/IP stacks, coding simple servers which mostly 
worked as I expected, and some of this for 10 years now. I still would 
call myself a beginner, but I know at least *some* things. I do not 
know what a "non-blocking write" is supposed to be though, which must 
be the reason I should not send data here (as Larry strongly emphasized).

Also, reading that paragraph, I did NOT immediately understand that it
is not ok to send status updates; just the contrary, I thought it was
a real benefit to IMAP that clients should get status updates immediately. 
Weird. I need more sleep, I think. :-(

> Specifically, your comment that "Pine catches up fine" suggests that you
> [...]
> Note as well that defiance of the flow control cautions of section 5.3
> will result in a deadlocked server.

I simply accept that sending the status updates should be done only 
as a response to a command, e.g. noop, and the server should not send
"blindly" to the client when no command is in progress.

I have no problem with it - the clients we're using here (MS) are doing
very well with their IDLE support; I just wondered that those other
clients, as good as they may be, do not support IDLE and therefore
need some time to get updates via NOOP or the like. Shouldn't be
support for IDLE a strongly suggested feature for clients? 
(Just asking, no more)

Christof

Reply via email to