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], [ ])
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"
])
])
], [
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"
])
])
], [
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
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);
#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);
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;