Arnt Gulbrandsen writes:
Ken Murchison writes:
Mostly nits, but a couple of corrections.
Mostly just done and not commented here. Thank you. One thing needs
discussion.
...
- Section 3.4, first paragraph. I don't really like the MUST and
MUST NOT combination in the two sentences. Could they be merged into
one positive sentence something like the following?
If the server supports the IMAP4 NAMESPACE command [4], and
it is in the authenticated state, the server MUST return an
untagged NAMESPACE response when a language is negotiated.
Good suggestion. Will do.
But how, exactly? I could say one of the following:
1. The server MUST remember whether it has sent NAMESPACE to the client
at any point during this connection, and MUST resend an appropriate
NAMESPACE response when it processes LANGUAGE. The new NAMESPACE's
values replace any earlier values sent.
1b. As 1, with "The client MUST NOT cache NAMESPACE values across
connections." added.
2. The client MUST resent NAMESPACE if it changes language using
LANGUAGE after sending the NAMESPACE command.
3. Requiring ENABLE.
My personal preference is option 2, then 3, then 1/1b.
I don't like option 1, because if a client caches NAMESPACE and does not
(re)send it on connection establishment, the LANGUAGE command doesn't
cause the NAMESPACE response to be sent. And not 1b either, because if
the client isn't permited to to cache the namespace response, how can it
cache messages in mailboxes whose name starts with a NAMESPACE-based
prefix?