Mercurial > hg > mlmmj
changeset 422:6952423ca1dd
Lets add Message-Id: and Date:
author | mmj |
---|---|
date | Sat, 15 Jan 2005 21:46:24 +1100 |
parents | 5388b1eb5ca9 |
children | ec509ab83a4c |
files | src/prepstdreply.c src/strgen.c |
diffstat | 2 files changed, 39 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/prepstdreply.c Sat Jan 15 21:46:12 2005 +1100 +++ b/src/prepstdreply.c Sat Jan 15 21:46:24 2005 +1100 @@ -151,7 +151,7 @@ { int infd, outfd; char *listaddr, *myfrom, *tmp, *subject, *retstr = NULL; - char *myreplyto, *myto, *str = NULL; + char *myreplyto, *myto, *str = NULL, *mydate, *mymsgid; tmp = concatstr(3, listdir, "/text/", filename); infd = open(tmp, O_RDONLY); @@ -175,6 +175,8 @@ myfrom = substitute(from, listaddr, tokencount, data); myto = substitute(to, listaddr, tokencount, data); + mydate = gendatestr(); + mymsgid = genmsgid(); if(replyto) { myreplyto = substitute(replyto, listaddr, tokencount, data); @@ -200,8 +202,8 @@ return NULL; } - str = concatstr(7, "From: ", myfrom, "\nTo: ", myto, "\n", myreplyto, - subject); + str = concatstr(9, "From: ", myfrom, "\nTo: ", myto, "\n", myreplyto, + mymsgid, mydate, subject); if(writen(outfd, str, strlen(str)) < 0) { log_error(LOG_ARGS, "Could not write std mail");
--- a/src/strgen.c Sat Jan 15 21:46:12 2005 +1100 +++ b/src/strgen.c Sat Jan 15 21:46:24 2005 +1100 @@ -219,8 +219,6 @@ return retstr; } -/* Unused for now, but lets keep it for later - char *genmsgid() { size_t len = 128; @@ -229,12 +227,43 @@ t = time(NULL); - snprintf(s, len-1, "<%ld-%x-mlmmj-%x@%x.plonk", t, random_int(), - random_int(), random_int()); + snprintf(s, len-1, "<%ld-%x-mlmmj-%x@%x.plonk", (long int)t, + random_int(), random_int(), random_int()); retstr = concatstr(3, "Message-ID: ", s, ">\n"); myfree(s); return retstr; } -*/ + +char *gendatestr() +{ + time_t t; + struct tm gmttm, lttm; + int dayyear; + char *timestr; + + /* 6 + 26 + ' ' + timezone which is 5 + '\n\0' == 40 */ + timestr = (char *)malloc(40); + strcpy(timestr, "Date: "); + t = time(NULL); + + ctime_r(&t, timestr + 6); + localtime_r(&t, <tm); + gmtime_r(&t, &gmttm); + + t = (((lttm.tm_hour - gmttm.tm_hour) * 60) + + (lttm.tm_min - gmttm.tm_min)) * 60; + + dayyear = lttm.tm_yday - gmttm.tm_yday; + if(dayyear) { + if (dayyear == -1 || dayyear > 1) + t -= 24 * 60 * 60; + else + t += 24 * 60 * 60; + } + + snprintf(timestr+30, 40, " %+05ld\n", ((long int)t)/36); + + return timestr; +}