All,

I downloaded the source code for Mozilla, did a full text index of it,
and used the index to explore the code. I found the following code in
nsMessageCompUtils.cpp that I think may answer my question about
Message-IDs in Mozilla. 

****************************************************************
char *
msg_generate_message_id (nsIMsgIdentity *identity)
{
    PRUint32 now;
    PRTime prNow = PR_Now();
    PRInt64 microSecondsPerSecond, intermediateResult;

    LL_I2L(microSecondsPerSecond, PR_USEC_PER_SEC);
    LL_DIV(intermediateResult, prNow, microSecondsPerSecond);
    LL_L2UI(now, intermediateResult);

    PRUint32 salt = 0;
    const char *host = 0;

    nsXPIDLCString from;
  nsresult rv = identity->GetEmail(getter_Copies(from));
  if (NS_FAILED(rv)) return nsnull;

    GenerateGlobalRandomBytes((unsigned char *) &salt, sizeof(salt));
    if (from) {
        host = PL_strchr (from, '@');
        if (host) {
            const char *s;
            for (s = ++host; *s; s++)
        if (!nsCRT::IsAsciiAlpha(*s) && !nsCRT::IsAsciiDigit(*s) &&
                        *s != '-' && *s != '_' && *s != '.') {
         host = 0;
      break;
 }
 }
 }

    if (! host)
    /* If we couldn't find a valid host name to use, we can't generate a
       valid message ID, so bail, and let NNTP and SMTP generate them.
*/
        return 0;

    return PR_smprintf("<%lX.%lX@%s>",
                     (unsigned long) now, (unsigned long) salt, host);
}

*************************************************************************

>From this code, it appears the format of a Message-ID in Mozilla is
"time.random@host" where time is reported as a 32bit HEX value
representing Year, Month, Day, Hour, Minute, Second and random is a HEX
representation of a random 32bit number.

So for the Message-ID [EMAIL PROTECTED]: (Message-ID on my
original post)

3AAB2873 (hex) = 984295539 (dec) = 11 March 2001, 7:25:39 (GMT)
879C0AF (hex) = 142196911 (dec) = just a 32bit random number with a
leading 0
(0000-1000-0111-1001-1100-0000-1010-1111)

If anyone was looking at the code and did not get a chance to reply to
my question before I posted this message, please review this code and
tell me if I have found what I am looking for.

Thanks,

James :-)

Reply via email to