From: mmj Date: Tue, 1 Feb 2005 15:00:56 +0000 (+1100) Subject: Date: rfc conformance X-Git-Tag: RELEASE_1_2_12_RC1~131 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3f20bbcb3fcaf337c63358a147e75bbff92b619;p=thirdparty%2Fmlmmj.git Date: rfc conformance --- diff --git a/ChangeLog b/ChangeLog index 8c859cd9..de8210ad 100644 --- 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) diff --git a/src/strgen.c b/src/strgen.c index 96faba0e..54cbed04 100644 --- a/src/strgen.c +++ b/src/strgen.c @@ -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, <tm); 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; }