]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Lets add Message-Id: and Date:
authormmj <none@none>
Sat, 15 Jan 2005 10:46:24 +0000 (21:46 +1100)
committermmj <none@none>
Sat, 15 Jan 2005 10:46:24 +0000 (21:46 +1100)
src/prepstdreply.c
src/strgen.c

index 5c401b76f4065a3c1dcc6a1eee65bc1b5cee5270..c438fa0dd5fc90185806bf6871728b3d577cb682 100644 (file)
@@ -151,7 +151,7 @@ char *prepstdreply(const char *listdir, const char *filename, const char *from,
 {
        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 @@ char *prepstdreply(const char *listdir, const char *filename, const char *from,
        
        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 @@ char *prepstdreply(const char *listdir, const char *filename, const char *from,
                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");
index 81676e68d37383b9fee3f84af94a6877f77c3bdd..96faba0e6d19bfe083c0054f36b5a9c7a7a02775 100644 (file)
@@ -219,8 +219,6 @@ char *cleanquotedp(const char *qpstr)
        return retstr;
 }
 
-/* Unused for now, but lets keep it for later
-
 char *genmsgid()
 {
        size_t len = 128;
@@ -229,12 +227,43 @@ char *genmsgid()
 
        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, &lttm);
+       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;
+}