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
