On 01/02/04 09:29:19 +0000 Richard Bang <[EMAIL PROTECTED]> wrote:
This is clearly a minefield.
I need to know if my server is broken or not.
When a client is inactive it can get unsolicited responses, flag changes , exists, expunge etc.
According to what I read, if a client does a search and then does nothing for 45 minutes, the server CANNOT send any expunge messages because it does not know if the next command MIGHT be a fetch.
Is this really correct, should I only send unsolicited after a command. In which case, you lose all ability to synchronise clients because of the command sequence.
As my server stands ATM I can have four clients connected and they all remain perfectly in sync. However, if I have to start predicting what the client will do and holding data back indefinably this will result in all sorts of a mess.
you will have to hold expunge responses until such time that the standard allows you to send them. If the client never nops then thats the clients problem but you will still have to cope with it.
Surly, rather than having a situation where the server has to remember the state of each client, there should be a server response that tells the client that its data may be out of sync.
Surly, a client that receives any EXPUNGE should know this.
Rfc3501: 6.4.5. FETCH Command
Arguments: sequence set message data item names or macro
Responses: untagged responses: FETCH
Result: OK - fetch completed NO - fetch error: can't fetch that data BAD - command unknown or arguments invalid
Therefore there is no way that a NO response can be considered a bug in the server, it's a valid response ! If a client errors in response to a NO then IT is broken.
thats how I would see it also.
NO [NOOPFIRST] wins my vote
my vote goes for a tagged NO FETCH if the message is expunged.
To me this is a similar situation as when the server encounters some kind of operating system io error and cannot complete the fetch. A tagged NO is the appropriate response imho. I would not go as far as disconnecting the client in such a case.
I cannot see the requirement for a NOOPFIRST or whatever extension. A client should NOOP often enough and servers should send their responses then.
Happy New Year!
Greetings Christian
-- Christian Kratzer [EMAIL PROTECTED] CK Software GmbH http://www.cksoft.de/ Phone: +49 7452 889 135 Fax: +49 7452 889 136
