Subj : message-id
To : Andrew Clarke
From : Charles Cruden
Date : Wed Oct 30 2002 08:51 pm
> FTS-9 MSGIDs are not unique enough to be accurately relied upon. In
> particular you the operator of a system runs the risk of generating
> duplicate MSGIDs when using two or more different programs concurrently
> that generate one, particularly when those programs use C's time(NULL)
> function as a seed value to generate the hex value of the MSGID, which
> is quite common. time(NULL) can differ greatly between implementations.
As a general rule, implementations for specific languages shouldn't be
mentioned in documents. I'd avoid this particular comment especially, since it
makes no sense. (time(NULL) must, by definition, be the same in any
implementation.)
Really, there's no point in having the time in there at all. You can tell when
the message was written by its timestamp, and as you pointed out above, times
are no guarantee of generating a unique ID. It still all comes down to the
[RR] field at the end.
For that matter, there's not much point in having the originating address in
the spec either. That's specified elsewhere, is open to misinterpretation and
abuse, and is, in particular, used for different purposes in different
implementations. (FTS-9 specifically does not specify what the originating
address format is, and gating software has put this to good use in assigning
originating addresses which reflect the internet address of the message rather
than the Fido one.)
> This format is similar to that used in Internet mail.
IMHO, you're just tampering with a good thing, i.e. the internet style
Message-ID line. Simply, make it:
Message-ID: <unique message identifier>
where <unique message identifier> is *ANY* string not containing a newline or a
^A. Provide the time thing as a suggestion for helping to generate unique IDs,
but also point out that time alone is no guarantee. Beyond that, let the
implementor choose his/her own method. Another possible note is that IDs which
satisfy the MSGID standard are a strict subset of this one.
---
* Origin: Xanadu: an odd little spot in Edmonton, Alberta (1:342/806)