[Chandler-dev] Chandler IMAP server parcel
travis at osafoundation.org
Mon Jul 10 11:40:55 PDT 2006
Continuing this thread, I've incorporated Andi's suggestions, and the
updated module is now available via svn at
Also, John mentioned putting together a code review after alpha 3
settles down, which sounds perfect. Thanks!
Grant Baillie wrote:
> Hey, Andi
> Thanks for looking at that code: Most of your comments are right on
> the money. IMAP has restrictions on what UIDs can be, though: see below.
> On 7 Jul, 2006, at 11:00, Andi Vajda wrote:
>> validityUID = schema.One(
>> doc = 'The unique id number of this mailbox.',
>> initialValue = random.randint(1000000, 9999999),
>> ) #@# why not use a UUID ?
>> #@# from chandlerdb.util.c import UUID()
>> #@# initialValue = UUID()
>> #@# also, maybe this should be in __init__() so that all
>> #@# don't endup with the same UID
>> #@# (an initial value is not required, by the way)
> In IMAP, a mailbox uid (a.k.a. "UIDVALIDITY value") has to be a
> non-zero 32-bit unsigned value. It's also supposed to be unique for
> the mailbox at that path (i.e. deleting & recreating the mailbox
> should give a new UID). So, a UUID (128 bits IIRC) won't work here:
> Most implementations use a timestamp (an increasing sequence of
> integers is also possible).
> However, as you point out, an initialValue isn't really required,
> either, and doesn't have the right behaviour w.r.t. deletion and
> recreation. Also, a random int could theoretically collide. Maybe the
> best thing is to override __init__ to make validityUID a computed
> value (like a timestamp).
> A similar comment applies to your comments about UUIDs for uidNext &
> UIDs: these also have to be 32-bit positive unsigned ints, and have
> the additionial requirement of increasing monotonically as messages
> are added to the mailbox.
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> Open Source Applications Foundation "chandler-dev" mailing list
More information about the chandler-dev