I have an IMAP client developer telling me that my server is broken because I insist on the proper RFC3501 sequencing of steps when the client submits a literal.
In short, he is saying that he can send the {<count>} followed by the data in a single packet without waiting for the continuation command from my server, and that I am broken because I won't accept that.
His claim is that this type of literal pipelining is "common Internet practice" and that I should be more tolerant.
The reason I don't accept this type of single-packet literal delivery is because I have to do an internal mode switch to accept a literal, and a side-effect of that is that the internal TCP buffering I do gets flushed. I've never been concerned about this in the past because the RFC states clearly that the client MUST wait for the continuation response before proceeding, so no issue has ever previously arisen as a result.
What is the consensus here? If you all think I'm being anal over this and that I should just accept this type of single-packet literal, then I'll consider modifying my tcp buffering code to allow it.
I'd also appreciate any comments on just how common an "Internet practice" this type of pipelined literal really is.
Sounds like the client is using the LITERAL+ extension (or some home-brewed version of such) w/o actually verifying that the server supports it. The client is clearly broken, and you're under no obligation to hack your server to support it.
-- Kenneth Murchison Oceana Matrix Ltd. Software Engineer 21 Princeton Place 716-662-8973 x26 Orchard Park, NY 14127 --PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp