From: Daniel Stenberg Date: Tue, 17 Apr 2001 07:28:49 +0000 (+0000) Subject: use GMT for the conditional timed gets (reported by Phil Karn) X-Git-Tag: curl-7_7_2~41 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fd8ea204c0faec613a43166af578bff95e724f79;p=thirdparty%2Fcurl.git use GMT for the conditional timed gets (reported by Phil Karn) --- diff --git a/lib/http.c b/lib/http.c index a701e2a466..58d03ac65a 100644 --- a/lib/http.c +++ b/lib/http.c @@ -646,12 +646,21 @@ CURLcode Curl_http(struct connectdata *conn) if(data->timecondition) { struct tm *thistime; + /* Phil Karn (Fri, 13 Apr 2001) pointed out that the If-Modified-Since + * header family should have their times set in GMT as RFC2616 defines: + * "All HTTP date/time stamps MUST be represented in Greenwich Mean Time + * (GMT), without exception. For the purposes of HTTP, GMT is exactly + * equal to UTC (Coordinated Universal Time)." (see page 20 of RFC2616). + */ + #ifdef HAVE_LOCALTIME_R /* thread-safe version */ + /* We assume that the presense of localtime_r() proves the presense + of gmtime_r() which is a bit ugly but might work */ struct tm keeptime; - thistime = (struct tm *)localtime_r(&data->timevalue, &keeptime); + thistime = (struct tm *)gmtime_r(&data->timevalue, &keeptime); #else - thistime = localtime(&data->timevalue); + thistime = gmtime(&data->timevalue); #endif if(NULL == thistime) { failf(data, "localtime() failed!");