Hello Vladimir -

Once again, I would like to thank you for your thoughful analysis and
comments.

I've read your message, and I don't think that there is anything that
justifies recalling the document from the IESG; so it will not go into the new
RFC.  However, I certainly will keep your message, and will use it in the next
set of changes.  Note that there will need to be at least two RFCs after this
one before IMAP becomes a Full Standard.

About the issues that you raised:

a) Neither the document, nor the protocol, takes any position about a trailing
hierarchy delimiter in the mailbox name in the DELETE or RENAME commands.  The
special semantics for the trailing hierarchy delimiter only apply to CREATE.

In general, however, anything that is not defined by the protocol is defined
by the implementation.  Since the protocol has no definition of what trailing
hierarchy delimiter in the name means for DELETE or RENAME, it falls under the
category of "things that clients shouldn't do."

b) It was intended that RENAME should preserve UIDVALIDITY and UIDs.  However,
this is wrong if the new name previously existed with a higher UIDVALIDITY
value.  So, it appears that a server has to assign a new UIDVALIDITY.

Unfortunately, should that requirement be added, it would instantly render
multiple servers non-compliant, in addition to servers that already fail to
comply with the atomic requirement.

My feeling is that RENAME should be removed from the protocol in a future
version of the specification, on the grounds that it is fundamentally broken.
However, doing so will be controversial, and I think that we should defer
action.

c) The definition of the special case of INBOX renaming was *not* "based on a
certain implementation" but rather was an attempt to weasel around earlier
problems with the definition of RENAME.

Your guess at how UW imapd works in this case is incorrect.  UW imapd will
refuse to rename any mailbox that is selected by any client, *including* the
client doing the rename.  Thus, it can only rename INBOX if nothing (including
the current session) has INBOX selected.  The rename is then just a matter of
doing the rename and creating a new empty INBOX.

Thus, UW imapd's implementation of RENAME is more or less the same as what
CommuniGate Pro does.

d) You asked about this case:
        CREATE aa                       (aa is "dual-use")
        CREATE aa/bb
        DELETE aa                       (which makes aa be \NoSelect)
   and then what happens if the client does:
        CREATE aa

I agree with you that it is desirable that "aa" becomes a "dual-use" name once
again; however this is also implementation-specific.  Otherwise, this would
establish a requirement that a mail store be able to create a "dual-use"
mailbox in an existing "directory".

If the server responds with an OK, then that is what happened.  Since there
was no trailing hierarchy delimiter, the name aa must be selectable; therefore
the CREATE made the name be "dual-use" once again.

However, the server has (always has) the right to respond with a NO.  So, a
mail store that does not allow "upgrade" of a \NoSelect name to "dual use" has
the perogative to respond with a NO.

Once again, thank you for your comments.  I agree that we should address all
of these issues in the future, but I don't think that these issues justify any
further delay of the RFC 2060 replacement.

-- Mark --

Reply via email to