Fix lingering timezone problem in If-Modified-Since
authorMichael Hampton <io_error@uncensored.citadel.org>
Fri, 19 Aug 2005 01:53:06 +0000 (01:53 +0000)
committerMichael Hampton <io_error@uncensored.citadel.org>
Fri, 19 Aug 2005 01:53:06 +0000 (01:53 +0000)
webcit/fmt_date.c
webcit/rss.c

index 546b72bbbd92aa991a08d580126146ab788cab3a..4481063f88c1e134e7a22a5e86c78156958fb394 100644 (file)
@@ -156,7 +156,9 @@ time_t httpdate_to_timestamp(const char *buf)
        time_t t = 0;
        struct tm tt;
        char *c;
+       char tz[256];
 
+lprintf(3, "Datestamp: %s\n", buf);
        /* Skip day of week, to number */
        for (c = buf; *c != ' '; c++)
                ;
@@ -222,7 +224,15 @@ time_t httpdate_to_timestamp(const char *buf)
        for (; *c && *c != ' '; c++);
 
        /* Got everything; let's go */
-       tt.tm_isdst = 0;
+       /* First, change to UTC */
+       if (getenv("TZ"))
+               sprintf(tz, "TZ=%s", getenv("TZ"));
+       else
+               strcpy(tz, "TZ=");
+       putenv("TZ=UTC");
+       tzset();
        t = mktime(&tt);
+       putenv(tz);
+       tzset();
        return t;
 }
index e479eb7a718ae8aa1607fa32f8426051fd83978d..0d131873c28f3850f873d5dd637bd4119cec5622 100644 (file)
@@ -50,7 +50,7 @@ void display_rss(const char *roomname)
                return;
        }
 
-       nummsgs = load_msg_ptrs("MSGS LAST|50", 0);
+       nummsgs = load_msg_ptrs("MSGS LAST|15", 0);
        if (nummsgs == 0) {
                wprintf("HTTP/1.0 404 Not Found\r\n");
                wprintf("Content-Type: text/html\r\n");