From 92d8f06029623d719357ad7d08d42909996768f9 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Tue, 23 Aug 2016 13:37:53 +0200 Subject: [PATCH] avoid recursive calls to the event loop dispatcher --- src/php_http_client_curl.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c index 27ebd02..b15fdd4 100644 --- a/src/php_http_client_curl.c +++ b/src/php_http_client_curl.c @@ -2251,19 +2251,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; + } } } -- 2.30.2