Hi,

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



Reply via email to