On 25 Feb 2003, Jonas Pasche wrote:
>Hi Andy,
>> qmail and Courier-IMAP. It certainly broke Courier-IMAP.
>IMHO, it broke qmail, too. From the maildir definition:
>"Old-fashioned delivery identifiers use the following formats:
>* n, where n is the process ID, and where this process has been forked
>to make one delivery. Unfortunately, some foolish operating systems
>repeat process IDs quickly, breaking the standard time+pid combination."
>Replace "some foolish operating systems" with (at least) OpenBSD, and
>you've got it. Anyway, qmail itself still uses
><unixtime>.<pid>.<hostname> as the identifier when writing no mails,
>thus it gets as mousetrapped as Courier IMAP itself, doesn't it?

Read on:

http://marc.theaimsgroup.com/?l=qmail&m=104251026829856&w=2

>However, that's not your part of the story. Here's my idea:
>If moving a message from one Maildir to another Maildir, and if you have
>to create the message in "new" instead of "cur" there, doesn't it behave
>like a completely now delivery to that Maildir?

Yes - you've got it! ;)

>If it does - aren't you free to change not only the info part from the
>filename, but also the uniq part? If it's a new delivery, you're the
>delivery agent, and it's your duty to find a good identifier.

Yes!

>That way, you'd be able to introduce "more unique" identifiers, such as
>microseconds (but who guarantees OpenBSD wouldn't repeat the same PID
>within a single microsecond?) or the unix_sequencenumber() mentioned on
>the Maildir definition, which would eliminate the need to wait a second
>before moving from "new" to "cur".

No! ;) The randomness in the "unique" section only increases the
probability that another Maildir client creates the same name. You must
move only at-least-one second old messages to ensure that all messages in
cur/ have unique bases.

Andy

-- 
Andreas Aardal Hanssen | http://www.andreas.hanssen.name/gpg
Author of Binc IMAP    | Nil desperandum

Reply via email to