On Mon, 27 Jan 2003, Mark Crispin wrote:
>On Mon, 27 Jan 2003 20:04:14 +0100 (CET), Andreas Aardal Hanssen wrote:
>> The "updated flags" yes - so the unupdated flags need not be returned, no?
>If an external entity changed flags (which is what is being discussed), then
>there is always an update.  The question is therefore meaningless.

Spare me the hostility - the question was not "should flag updates from
external entities be shown" but "is this correct IMAP".

If I do this:

1 FETCH 1 FLAGS
* 1 FETCH (FLAGS (\Seen))
2 STORE 1 +FLAGS ()
* 1 FETCH (FLAGS (\Seen))

If the IMAP server knows, in this example, that the client is perfectly 
aware of the state of flags in message #1, why should it then send the 
untagged FETCH?

Andy

>> 3 store 1 +flags ()
>> * 1 FETCH (FLAGS (\Seen))
>> 3 OK STORE completed.
>
>This is correct behavior.  This was not the ".SILENT" form of storing flags,
>therefore the update must always be returned even if nothing changed.
>
>> This is another IMAP server (identifies as IMAP4rev1 v11.241):
>
>Gack, is anyone still running that version?  It has known security bugs!
>
>> 4 store 1 +flags ()
>> * 1 FETCH (FLAGS (\Recent))
>> 4 OK STORE completed
>
>This is also correct behavior.  \Recent has special semantics, and can not be
>altered by STORE.
>
>This is also a good example of why STORE returns flags unless you use
>".SILENT".  In the case of
>       4 store 1 +flags.silent ()
>       4 OK STORE completed
>without a preceeding "fetch 1 flags" a client migh falsely presume that the
>flags of message 1 are now all unset.  The client would be wrong, since if it
>never fetched the flags for message 1 it doesn't know the status of \Recent.
>
>

-- 
Andreas Aardal Hanssen - Binc IMAP
http://www.bincimap.andreas.hanssen.name/

Reply via email to