]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Date: rfc conformance
authormmj <none@none>
Tue, 1 Feb 2005 15:00:56 +0000 (02:00 +1100)
committermmj <none@none>
Tue, 1 Feb 2005 15:00:56 +0000 (02:00 +1100)
ChangeLog
src/strgen.c

index 8c859cd9386a064272e8d934cd1ae81e06089b90..de8210adeba578c19e8e85804d98eb241bde651f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+ o Make the Date: header RFC2822 conformant
 1.2.2
  o Make mlmmj-send work allthough no subscribers exist
  o Bring webinterfaces up to speed (Christian Laursen)
index 96faba0e6d19bfe083c0054f36b5a9c7a7a02775..54cbed04ced7dd2387ccddd4a4fe0d424dc3ce51 100644 (file)
@@ -242,13 +242,13 @@ char *gendatestr()
        struct tm gmttm, lttm;
        int dayyear;
        char *timestr;
+       const char *weekday = NULL, *month = NULL;
 
        /* 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);
 
@@ -262,8 +262,58 @@ char *gendatestr()
                else
                        t += 24 * 60 * 60;
        }
+
+       switch(lttm.tm_wday) {
+               case 0: weekday = "Sun";
+                       break;
+               case 1: weekday = "Mon";
+                       break;
+               case 2: weekday = "Tue";
+                       break;
+               case 3: weekday = "Wed";
+                       break;
+               case 4: weekday = "Thu";
+                       break;
+               case 5: weekday = "Fri";
+                       break;
+               case 6: weekday = "Sat";
+                       break;
+               default:
+                       break;
+       }
+       switch(lttm.tm_mon) {
+               case 0: month = "Jan";
+                       break;
+               case 1: month = "Feb";
+                       break;
+               case 2: month = "Mar";
+                       break;
+               case 3: month = "Apr";
+                       break;
+               case 4: month = "May";
+                       break;
+               case 5: month = "Jun";
+                       break;
+               case 6: month = "Jul";
+                       break;
+               case 7: month = "Aug";
+                       break;
+               case 8: month = "Sep";
+                       break;
+               case 9: month = "Oct";
+                       break;
+               case 10: month = "Nov";
+                        break;
+               case 11: month = "Dec";
+                        break;
+               default:
+                        break;
+       }
+
        
-       snprintf(timestr+30, 40, " %+05ld\n", ((long int)t)/36);
+       snprintf(timestr, 40, "Date: %s, %02d %s %d %d:%d:%d %+05d\n",
+                       weekday, lttm.tm_mday, month, lttm.tm_year + 1900,
+                       lttm.tm_hour, lttm.tm_min, lttm.tm_sec, ((int)t)/36);
 
        return timestr;
 }