/* $Id: genid.c 6135 2003-01-19 01:15:40Z rra $
**
** Generate a message ID.
*/
#include "config.h"
#include "clibrary.h"
#include "inn/innconf.h"
#include "libinn.h"
/* Scale time back a bit, for shorter Message-ID's. */
#define OFFSET 673416000L
char *
GenerateMessageID(char *domain)
{
static char buff[SMBUF];
static int count;
char *p;
char sec32[10];
char pid32[10];
TIMEINFO Now;
if (GetTimeInfo(&Now) < 0)
return NULL;
Radix32(Now.time - OFFSET, sec32);
Radix32(getpid(), pid32);
if ((domain != NULL && innconf->domain == NULL) ||
(domain != NULL && innconf->domain != NULL
&& strcmp(domain, innconf->domain) != 0)) {
p = domain;
} else {
if ((p = GetFQDN(domain)) == NULL)
return NULL;
}
snprintf(buff, sizeof(buff), "<%s$%s$%d@%s>", sec32, pid32, ++count, p);
return buff;
}
syntax highlighted by Code2HTML, v. 0.9.1