On Fri, 20 Jun 2003, Rob Siemborski wrote:
> Its also pretty badly defined (the only requirement is that it is returned
> for 'interesting' mailboxes, but 'interesting' is never defined in a
> solid way, only a suggestion is given).

This is because, many years ago, CMU didn't want to be nailed down on a
more precise definition.  It's you folks who came up with that wording.

However, the intended purpose was always clear.

> Any client that requires its use, however, is broken.

What do you mean by "requires its use"?  Are you claiming that a client
which can use these flags for useful purposes is broken?

> Actually, now that I notice it, \Unmarked is not the inverse of \Marked.

Well, of course.  There is a third state: the server can not say either
way.

In the case of a flat-file mail store, it's the result of the classical
shell test for "you have new mail" of a stat() system call and the
comparison of atime vs. mtime.  If read is later than write, it's
\Unmarked; if write is later than read, it's \Marked; if they're the same,
then neither.

This type of test, while imperfect, is also quite useful; it is always
faster than doing the more thorough test with STATUS or SELECT/EXAMINE,
and in some mail stores it is substantially faster.

\Unmarked is the most useful status.  It indicates to the client that it
can definitely skip consideration of a mailbox.

> So (to use Larry's example from a while back), if my server defines
> 'interesting' to mean "This folder has a message that contains the word
> 'penguins'.", then \Marked and \Unmarked have distinct and
> unrelated meanings.

That "penguins" example is nonsensical and insulting.  It obfuscates the
discussion and makes matters difficult for everyone.

A more intelligent response from you (or for that matter anyone) on the
question would be:
        A server should make a best effort to give an indication
        via the \Marked and \Unmarked flags if some change happened
        to the mailbox since the last time a client had it selected.
        \Marked indicates the server's belief that something has
        happened; \Unmarked indicates the server's certainty that
        something has not happened.
        If the server can not decide, it should return neither flag
        rather than make a false guess.
        A way of deciding \Marked vs. \Unmarked would be if the last
        write is later than the last read.

-- 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