[POLL] Development guidance
Ken Murchison
murch at andrew.cmu.edu
Mon Nov 5 19:10:08 EST 2007
Bron Gondwana wrote:
> On Mon, Nov 05, 2007 at 04:58:59PM +0000, David Carter wrote:
>> On Fri, 2 Nov 2007, Ken Murchison wrote:
>>
>>> I'm getting ready to implement the QRESYNC extension for the upcoming
>>> LEMONADE interop.
>>>
>>> http://www.ietf.org/internet-drafts/draft-ietf-lemonade-reconnect-client-06.txt
>> Reading the Internet Draft, I'm a little puzzled by:
>>
>> 4.3. Additional state required on the server
>>
>> [...]
>>
>> Also note that if the UIDVALIDITY of the mailbox changes [...], then
>> any state associated with expunged messages MUST be deleted as well.
>>
>> I'm not clear what the motivation is here given that a new UIDvalidity
>> forces a full resync from any client: no QRESYNC is possible.
>>
>> This requirement is likely to be a pain for:
>>
>>> 1. Leverage delayed expunge which already stores state for expunged
>>> messages in cyrus.expunge (up until the records are purged by cyr_expire).
>> Given that unexpunge assigns a new UIDvalidity to the mailbox.
>
> I think that unexpunge should actually be the same as "COPY" where the
> source is the "deleted" record. This updating UIDvalidity is just rude,
> especially if you're only unexpunging a couple of messages from a much
> bigger mailbox.
>
> SEEN state handling is a pain, but that's always been a pain. I don't
> mind too much if an unexpunged message shows up as "unseen" in its
> new incarnation.
I think I agree. We have to change the UID of the unexpunged message to
UIDNEXT, and rename() the message file accordingly.
--
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University
More information about the Cyrus-devel
mailing list