On Mon, 11 Aug 2003, Pete Maclean wrote:
> A related issue is that I feel the need for some clarification on the whole
> business of commands completely succeeding or completely failing.  I have
> come to regard this as an important dictum for IMAP implementation as it
> has been mentioned a few times on this list.  (For example, in a message
> from April 2000, Mark stated "IMAP guarantees that commands succeed
> completely or fail completely.")  However I can find no statement to this
> effect in RFC 3501 and am not sure just what it means to fail or succeed
> completely?

I just got back from vacation and saw this.

The quoted comment from me is correct.  Note, however, the "unsolicited
data" model in IMAP, in which a server can unilaterally send data that was
not requested from the client.  Thus, in a FETCH, it is quite possible for
some data to be fetched and then get a NO.  The NO still means that that
the command "failed completely."

> Given that Mark has also made it clear that there is no
> problem with a command failing but still resulting in useful data being
> sent to the client, I have tentatively concluded that the rule pertains
> only to commands that change multiple and non-atomic things on the
> server.  Obvious contenders are APPEND, COPY, DELETE, EXPUNGE and STORE,

Right.

> plus instances of FETCH  that have the side effect of setting \Seen
> flags.

Wrong, and yes this is a design wart in IMAP.  Fortunately, it's only an
issue with binary fetching of multiple messages.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.

Reply via email to