[prev in list] [next in list] [prev in thread] [next in thread] 

List:       imap
Subject:    re: expected behavior of imapd on UID STORE +FLAGS?
From:       Mark Crispin <MRC () CAC ! Washington ! EDU>
Date:       2001-10-11 23:53:56
[Download RAW message or body]

On Thu, 11 Oct 2001 16:11:47 -0700, Dowson Tong wrote:
> Q1: In this case, should the server returns OK, or NO/BAD on the
>     UID STORE +FLAGS.SILENT command?

Since it's a UID STORE command, the response is OK.  However, since UID 2 was
never announced, the command is a no-op and no flags are altered.  If the UID
doesn't exist, it is ignored in the sequence.

If, on the other hand, the command was STORE instead of UID STORE, then it
would be an error since message 2 was never announced.

> I guess the fundamental issue here is whether the server that
> handles the first session should stick to the state of the
> first session, or to the latest state of the mailbox (which
> might have been modified by other sessions).

A session must stick to its state, and that state doesn't change until the
server announces the change to the client.

> Q2: If the server should reflect the latest state of the mailbox,
>     should the STORE (not UID STORE) command act on a sequence
>     number based on the original state of the mailbox (or the
>     latest state of the mailbox)?
> Q3: If the server should reflect the latest state of the mailbox,
>     should the STORE +FLAGS command fail if the message specified
>     by the command has been expunged from the mailbox?

Both of these questions are moot.

> Q4: If the server should reflect the state of the current
>     session, should the STORE +FLAGS command fail if the
>     message specified by the command has been expunged from
>     the mailbox?

The expunge effectively has not happened in a session until it is announced in
that session.  Thus, if the message has been announced via an EXISTS, it still
exists until the client has been sent an untagged EXPUNGE.

If the message exists, then STORE works on it.

If the message does not exist, then STORE of that message number is an error
and UID STORE is a no-op for that UID.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic