X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_request_api.c;h=b2da719eae325f4d87975739530a02a805b5b6ae;hp=777fd7be0e3ce653a2357ed674ae9bf2d79adab5;hb=5c5ddf9042732a05100245844fe2fb70bfe6d495;hpb=47d531af5faac1df8dedeb383867850ab430f0a1 diff --git a/http_request_api.c b/http_request_api.c index 777fd7b..b2da719 100644 --- a/http_request_api.c +++ b/http_request_api.c @@ -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);