From: Michael Wallner Date: Mon, 15 Sep 2014 12:18:14 +0000 (+0200) Subject: Merge branch 'R_2_1' X-Git-Tag: RELEASE_2_2_0_RC1~11^2~3 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=commitdiff_plain;h=0fec4ae3ad609adc395f7c5abbc6472792d03514;hp=8e1a8dc794800b079df0ee108fc72b9bd8ddfdee Merge branch 'R_2_1' --- diff --git a/config9.m4 b/config9.m4 index 9ca8356..686b5ea 100644 --- a/config9.m4 +++ b/config9.m4 @@ -190,7 +190,7 @@ dnl ---- AC_MSG_CHECKING([for SSL support in libcurl]) CURL_SSL=`$CURL_CONFIG --feature | $EGREP SSL` - CURL_SSL_LIBS=() + CURL_SSL_LIBS="" if test "$CURL_SSL" = "SSL"; then AC_MSG_RESULT([yes]) AC_DEFINE([PHP_HTTP_HAVE_SSL], [1], [ ]) @@ -212,7 +212,7 @@ dnl ---- AC_CHECK_HEADER([openssl/ssl.h], [ AC_CHECK_HEADER([openssl/crypto.h], [ AC_DEFINE([PHP_HTTP_HAVE_OPENSSL], [1], [ ]) - CURL_SSL_LIBS=(ssl crypto) + CURL_SSL_LIBS="ssl crypto" ]) ]) ], [ @@ -238,7 +238,7 @@ dnl ---- AC_CHECK_HEADER([gnutls.h], [ AC_CHECK_HEADER([gcrypt.h], [ AC_DEFINE([PHP_HTTP_HAVE_GNUTLS], [1], [ ]) - CURL_SSL_LIBS=(gnutls gcrypt) + CURL_SSL_LIBS="gnutls gcrypt" ]) ]) ], [ @@ -274,9 +274,11 @@ dnl ---- CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS" - for CURL_SSL_LIB in "${CURL_SSL_LIBS[[@]]}"; do - PHP_ADD_LIBRARY_WITH_PATH([$CURL_SSL_LIB], $CURL_DIR/$PHP_LIBDIR, PHP_HTTP_SHARED_LIBADD) - done + if test -n "$CURL_SSL_LIBS"; then + for CURL_SSL_LIB in $CURL_SSL_LIBS; do + PHP_ADD_LIBRARY_WITH_PATH([$CURL_SSL_LIB], $CURL_DIR/$PHP_LIBDIR, PHP_HTTP_SHARED_LIBADD) + done + fi dnl end compile tests diff --git a/php_http_client_curl.c b/php_http_client_curl.c index b261a34..3ee624e 100644 --- a/php_http_client_curl.c +++ b/php_http_client_curl.c @@ -1675,10 +1675,8 @@ static STATUS php_http_client_curl_handler_prepare(php_http_client_curl_handler_ return SUCCESS; } -static void php_http_client_curl_handler_dtor(php_http_client_curl_handler_t *handler) +static void php_http_client_curl_handler_clear(php_http_client_curl_handler_t *handler) { - TSRMLS_FETCH_FROM_CTX(handler->client->ts); - curl_easy_setopt(handler->handle, CURLOPT_NOPROGRESS, 1L); #if PHP_HTTP_CURL_VERSION(7,32,0) curl_easy_setopt(handler->handle, CURLOPT_XFERINFOFUNCTION, NULL); @@ -1687,6 +1685,13 @@ static void php_http_client_curl_handler_dtor(php_http_client_curl_handler_t *ha #endif curl_easy_setopt(handler->handle, CURLOPT_VERBOSE, 0L); curl_easy_setopt(handler->handle, CURLOPT_DEBUGFUNCTION, NULL); +} + +static void php_http_client_curl_handler_dtor(php_http_client_curl_handler_t *handler) +{ + TSRMLS_FETCH_FROM_CTX(handler->client->ts); + + php_http_client_curl_handler_clear(handler); php_resource_factory_handle_dtor(handler->rf, handler->handle TSRMLS_CC); php_resource_factory_free(&handler->rf); @@ -1851,6 +1856,7 @@ static STATUS php_http_client_curl_dequeue(php_http_client_t *h, php_http_client php_http_client_curl_handler_t *handler = enqueue->opaque; TSRMLS_FETCH_FROM_CTX(h->ts); + php_http_client_curl_handler_clear(handler); if (CURLM_OK == (rs = curl_multi_remove_handle(curl->handle, handler->handle))) { zend_llist_del_element(&h->requests, handler->handle, (int (*)(void *, void *)) compare_queue); return SUCCESS;