On Mon, 2003-01-20 at 09:24, Andreas Aardal Hanssen wrote:

> So what you're saying is that cacheing the time(NULL) value and keeping it
> in one single-point-of-failure file will solve the problem? How is this
> different from calling time(NULL)?

time(NULL) doesn't guarantee unique UIDVALIDITY if more than one mailbox
was created within one second. That is the only real problem that I see
with RENAME.

> I never claimed that using time(NULL) will solve the RENAME problem.

And that is the only thing I'd like to fix. Using timestamps or whatever
ascending value with CREATE has no problems, I was never talking about
that.

> This thread started with me asking wether or not there is _any_ compliant
> way of solving the RENAME problem.

I see two, neither which are too tempting:

a) change the UIDVALIDITY every time
b) keep permanently track of the last UIDVALIDITY for each deleted
folder, use MAX(renamed_uidvalidity, last_uidvalidity+1)

If we just agreed that the UIDVALIDITY doesn't _really_ have to be
ascending, at least with RENAME, neither would be necessary if server
used unique UIDVALIDITY for each folder.

At least with the above servers would have some somewhat reasonable way
to deal with this, other than just always changing the UIDVALIDITY. The
current behaviour is the worst of all, it breaks all clients if the
RENAMEd mailboxes were created at the same time.

> If the client does the "!=" test instead of the ">=" test, then it's a
> client that allows more than the RFC allows. I'm not quite sure of the
> implications of this, but I can not imagine why a client would use "!="
> instead of ">=".

I can't imagine why client would use ">=" instead of "!=". Change is a
change, no matter the direction. Besides, the rfc2060 mentions "growing"
UIDVALIDITY twice, "different" UIDVALIDITY 4 times.

Reply via email to