summaryrefslogtreecommitdiff
path: root/pith/reply.c
diff options
context:
space:
mode:
Diffstat (limited to 'pith/reply.c')
-rw-r--r--pith/reply.c59
1 files changed, 12 insertions, 47 deletions
diff --git a/pith/reply.c b/pith/reply.c
index ab4e97c..702832a 100644
--- a/pith/reply.c
+++ b/pith/reply.c
@@ -3346,58 +3346,23 @@ second and a single unique character
char *
generate_message_id(void)
{
- static short osec = 0, cnt = 0;
- char idbuf[128], revisionbuf[128];
char *id;
- time_t now;
- struct tm *now_x;
- char *revision = NULL;
- char *hostpart = NULL;
- char *alpine_name = NULL;
- char *alpine_version = NULL;
- char *system_os = NULL;
-
- now = time((time_t *)0);
- now_x = localtime(&now);
-
- if(now_x->tm_sec == osec)
- cnt++;
- else{
- cnt = 0;
- osec = now_x->tm_sec;
- }
+ char *leftpart;
+ char *hostpart;
- get_alpine_revision_number(revisionbuf, sizeof(revisionbuf));
if(F_ON(F_ROT13_MESSAGE_ID, ps_global)){
- hostpart = rot13(ps_global->hostname);
- alpine_name = rot13("alpine");
- alpine_version = rot5n(ALPINE_VERSION);
- system_os = rot13(SYSTYPE);
- revision = rot5n(revisionbuf);
+ hostpart = rot13(ps_global->hostname);
+ leftpart = rot13(oauth2_generate_state());
} else {
- hostpart = cpystr(ps_global->hostname);
- alpine_name = cpystr("alpine");
- alpine_version = cpystr(ALPINE_VERSION);
- system_os = cpystr(SYSTYPE);
- revision = cpystr(revisionbuf);
+ hostpart = cpystr(ps_global->hostname);
+ leftpart = oauth2_generate_state();
}
-
- if(!hostpart)
- hostpart = cpystr("huh");
-
- snprintf(idbuf, sizeof(idbuf), "<%.6s.%.4s.%.20s.%.10s.%02d%02d%02d%02d%02d%02d%X.%d@%.50s>",
- alpine_name, system_os, alpine_version, revision,(now_x->tm_year) % 100, now_x->tm_mon + 1,
- now_x->tm_mday, now_x->tm_hour, now_x->tm_min, now_x->tm_sec,
- cnt, getpid(), hostpart);
- idbuf[sizeof(idbuf)-1] = '\0';
-
- id = cpystr(idbuf);
-
- if(hostpart) fs_give((void **) &hostpart);
- if(alpine_name) fs_give((void **) & alpine_name);
- if(alpine_version) fs_give((void **)&alpine_version);
- if(system_os) fs_give((void **)&system_os);
- if(revision) fs_give((void **)&revision);
+
+ id = fs_get(strlen(leftpart) + strlen(hostpart) + 4);
+ sprintf(id, "<%s@%s>", leftpart, hostpart);
+
+ fs_give((void **) &hostpart);
+ fs_give((void **) &leftpart);
return(id);
}