X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_client_curl.c;h=b7c6b05389012f74bc667b2d2a38f23feee855b9;hp=27ebd02682790897a238e4051efe7120cdd58a5b;hb=refs%2Fheads%2Fv2.6.x;hpb=e5df73ae2e31faa4e5a7de57409734f4cecd4c4a diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c index 27ebd02..b7c6b05 100644 --- a/src/php_http_client_curl.c +++ b/src/php_http_client_curl.c @@ -450,6 +450,11 @@ static ZEND_RESULT_CODE php_http_curle_get_info(CURL *ch, HashTable *info) add_assoc_long_ex(&array, "local_port", sizeof("local_port"), l); } #endif +#if PHP_HTTP_CURL_VERSION(7,50,0) + if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_HTTP_VERSION, &l)) { + add_assoc_long_ex(&array, "http_version", sizeof("http_version"), l); + } +#endif /* END::CURLINFO */ @@ -2251,19 +2256,21 @@ static ZEND_RESULT_CODE php_http_client_curl_exec(php_http_client_t *h) php_http_client_curl_t *curl = h->ctx; TSRMLS_FETCH_FROM_CTX(h->ts); - if (curl->ev_ops) { - return curl->ev_ops->exec(curl->ev_ctx); - } + if (!h->callback.depth) { + if (curl->ev_ops) { + return curl->ev_ops->exec(curl->ev_ctx); + } - while (php_http_client_curl_once(h) && !EG(exception)) { - if (SUCCESS != php_http_client_curl_wait(h, NULL)) { + while (php_http_client_curl_once(h) && !EG(exception)) { + if (SUCCESS != php_http_client_curl_wait(h, NULL)) { #ifdef PHP_WIN32 - /* see http://msdn.microsoft.com/library/en-us/winsock/winsock/windows_sockets_error_codes_2.asp */ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "WinSock error: %d", WSAGetLastError()); + /* see http://msdn.microsoft.com/library/en-us/winsock/winsock/windows_sockets_error_codes_2.asp */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "WinSock error: %d", WSAGetLastError()); #else php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno)); #endif - return FAILURE; + return FAILURE; + } } }