static inline void http_ssl_cleanup(void);
#endif
-STATUS _http_request_global_init(INIT_FUNC_ARGS)
+PHP_MINIT_FUNCTION(http_request)
{
if (CURLE_OK != curl_global_init(CURL_GLOBAL_ALL)) {
return FAILURE;
return SUCCESS;
}
-void _http_request_global_cleanup(TSRMLS_D)
+PHP_MSHUTDOWN_FUNCTION(http_request)
{
curl_global_cleanup();
#ifdef HTTP_NEED_SSL
http_ssl_cleanup();
#endif
+ return SUCCESS;
}
#ifndef HAVE_CURL_EASY_STRERROR
}
#endif
- /* compress, empty string enables deflate and gzip */
+ /* compress, empty string enables all supported if libcurl was build with zlib support */
if ((zoption = http_curl_getopt(options, "compress", IS_BOOL)) && Z_LVAL_P(zoption)) {
+#if defined(HTTP_HAVE_ZLIB) || defined(HAVE_ZLIB)
+ HTTP_CURL_OPT(ENCODING, "gzip;q=1.0, deflate;q=0.5, *;q=0");
+#else
HTTP_CURL_OPT(ENCODING, "");
+#endif
}
/* redirects, defaults to 0 */
/* lastmodified */
if (zoption = http_curl_getopt(options, "lastmodified", IS_LONG)) {
- HTTP_CURL_OPT(TIMECONDITION, range_req ? CURL_TIMECOND_IFUNMODSINCE : CURL_TIMECOND_IFMODSINCE);
- HTTP_CURL_OPT(TIMEVALUE, Z_LVAL_P(zoption));
+ 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);
+ } else {
+ HTTP_CURL_OPT(TIMECONDITION, CURL_TIMECOND_NONE);
+ }
}
/* timeout, defaults to 0 */
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);
#endif /* HTTP_HAVE_CURL */
+zend_bool _http_request_supports_ssl(void)
+{
+#ifdef HTTP_NEED_SSL
+ return (zend_bool) 1;
+#else
+ return (zend_bool) 0;
+#endif
+}
+
/*
* Local variables:
* tab-width: 4