X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_api.c;h=8b80c4df33cd6f2e8fa7735ca5aef027387d4406;hp=817cdc1996933d75e0719c3e5dfbe28f15694b4c;hb=3c7aaecb2e0ecc1e24cdf3347178f382c9c71f71;hpb=73f46fcdbfc3118966ca34e2a66bfed298c187ad diff --git a/http_api.c b/http_api.c index 817cdc1..8b80c4d 100644 --- a/http_api.c +++ b/http_api.c @@ -34,7 +34,6 @@ #include "ext/standard/php_string.h" #include "ext/standard/php_smart_str.h" #include "ext/standard/php_lcg.h" -#include "ext/standard/php_filestat.h" #include "SAPI.h" @@ -59,6 +58,9 @@ #endif +#if !defined(CURLINFO_RESONSE_CODE) && defined(CURLINFO_HTTP_CODE) +#define CURLINFO_RESONSE_CODE CURLINFO_HTTP_CODE +#endif ZEND_DECLARE_MODULE_GLOBALS(http) @@ -433,7 +435,7 @@ static inline void _http_curl_setopts(CURL *ch, const char *url, HashTable *opti curl_easy_setopt(ch, CURLOPT_AUTOREFERER, 1); curl_easy_setopt(ch, CURLOPT_WRITEFUNCTION, http_curl_body_callback); curl_easy_setopt(ch, CURLOPT_HEADERFUNCTION, http_curl_hdrs_callback); -#ifdef ZTS +#if defined(ZTS) && (LIBCURL_VERSION_NUM >= 0x070a00) curl_easy_setopt(ch, CURLOPT_NOSIGNAL, 1); #endif @@ -463,19 +465,23 @@ static inline void _http_curl_setopts(CURL *ch, const char *url, HashTable *opti if (zoption = http_curl_getopt1(options, "proxyauth", IS_STRING)) { curl_easy_setopt(ch, CURLOPT_PROXYUSERPWD, Z_STRVAL_P(zoption)); } +#if LIBCURL_VERSION_NUM > 0x070a06 /* auth method */ if (zoption = http_curl_getopt1(options, "proxyauthtype", IS_LONG)) { curl_easy_setopt(ch, CURLOPT_PROXYAUTH, Z_LVAL_P(zoption)); } +#endif } /* auth */ if (zoption = http_curl_getopt1(options, "httpauth", IS_STRING)) { curl_easy_setopt(ch, CURLOPT_USERPWD, Z_STRVAL_P(zoption)); } +#if LIBCURL_VERSION_NUM > 0x070a05 if (zoption = http_curl_getopt1(options, "httpauthtype", IS_LONG)) { curl_easy_setopt(ch, CURLOPT_HTTPAUTH, Z_LVAL_P(zoption)); } +#endif /* compress, enabled by default (empty string enables deflate and gzip) */ if (zoption = http_curl_getopt2(options, "compress", IS_LONG, IS_BOOL)) { @@ -569,7 +575,11 @@ static inline char *_http_curl_getinfoname(CURLINFO i TSRMLS_DC) /* CURLINFO_EFFECTIVE_URL = CURLINFO_STRING +1, */ CASE(EFFECTIVE_URL); /* CURLINFO_RESPONSE_CODE = CURLINFO_LONG +2, */ +#if LIBCURL_VERSION_NUM > 0x070a06 CASE(RESPONSE_CODE); +#else + CASE(HTTP_CODE); +#endif /* CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE +3, */ CASE(TOTAL_TIME); /* CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE +4, */ @@ -606,14 +616,16 @@ static inline char *_http_curl_getinfoname(CURLINFO i TSRMLS_DC) CASE(REDIRECT_TIME); /* CURLINFO_REDIRECT_COUNT = CURLINFO_LONG +20, */ CASE(REDIRECT_COUNT); - /* CURLINFO_PRIVATE = CURLINFO_STRING +21, */ + /* CURLINFO_PRIVATE = CURLINFO_STRING +21, * (mike) / CASE(PRIVATE); /* CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG +22, */ CASE(HTTP_CONNECTCODE); +#if LIBCURL_VERSION_NUM > 0x070a07 /* CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG +23, */ CASE(HTTPAUTH_AVAIL); /* CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG +24, */ CASE(PROXYAUTH_AVAIL); +#endif } #undef CASE return NULL; @@ -667,8 +679,12 @@ static inline void _http_curl_getinfo(CURL *ch, HashTable *info TSRMLS_DC) #define INFO(I) http_curl_getinfo_ex(ch, CURLINFO_ ##I , &array) /* CURLINFO_EFFECTIVE_URL = CURLINFO_STRING +1, */ INFO(EFFECTIVE_URL); +#if LIBCURL_VERSION_NUM > 0x070a06 /* CURLINFO_RESPONSE_CODE = CURLINFO_LONG +2, */ INFO(RESPONSE_CODE); +#else + INFO(HTTP_CODE); +#endif /* CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE +3, */ INFO(TOTAL_TIME); /* CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE +4, */ @@ -709,10 +725,12 @@ static inline void _http_curl_getinfo(CURL *ch, HashTable *info TSRMLS_DC) INFO(PRIVATE); /* CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG +22, */ INFO(HTTP_CONNECTCODE); +#if LIBCURL_VERSION_NUM > 0x070a07 /* CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG +23, */ INFO(HTTPAUTH_AVAIL); /* CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG +24, */ INFO(PROXYAUTH_AVAIL); +#endif #undef INFO } /* }}} */