- gzip responses
[m6w6/ext-http] / http_request_api.c
index 777fd7be0e3ce653a2357ed674ae9bf2d79adab5..b2da719eae325f4d87975739530a02a805b5b6ae 100644 (file)
@@ -542,12 +542,15 @@ PHP_HTTP_API STATUS _http_request_init(CURL *ch, http_request_method meth, char
 
        /* lastmodified */
        if (zoption = http_curl_getopt(options, "lastmodified", IS_LONG)) {
-               if (Z_LVAL_P(zoption) > 0) {
+               if (Z_LVAL_P(zoption)) {
+                       if (Z_LVAL_P(zoption) > 0) {
+                               HTTP_CURL_OPT(TIMEVALUE, Z_LVAL_P(zoption));
+                       } else {
+                               HTTP_CURL_OPT(TIMEVALUE, time(NULL) + Z_LVAL_P(zoption));
+                       }
                        HTTP_CURL_OPT(TIMECONDITION, range_req ? CURL_TIMECOND_IFUNMODSINCE : CURL_TIMECOND_IFMODSINCE);
-                       HTTP_CURL_OPT(TIMEVALUE, Z_LVAL_P(zoption));
                } else {
                        HTTP_CURL_OPT(TIMECONDITION, CURL_TIMECOND_NONE);
-                       HTTP_CURL_OPT(TIMEVALUE, 0);
                }
        }
 
@@ -949,6 +952,7 @@ static inline void _http_curl_defaults(CURL *ch)
        HTTP_CURL_OPT(COOKIEJAR, NULL);
        HTTP_CURL_OPT(RESUME_FROM, 0);
        HTTP_CURL_OPT(MAXFILESIZE, 0);
+       HTTP_CURL_OPT(TIMECONDITION, 0);
        HTTP_CURL_OPT(TIMEVALUE, 0);
        HTTP_CURL_OPT(TIMEOUT, 0);
        HTTP_CURL_OPT(CONNECTTIMEOUT, 3);