From: Michael Wallner Date: Tue, 24 May 2016 18:27:30 +0000 (+0200) Subject: Merge branch 'v2.6.x' X-Git-Tag: RELEASE_3_1_0_BETA1~17 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=commitdiff_plain;h=54059a470e850eb8380bde2a4ed117e25c1b3e95;hp=ab1eba311be2f8aab98eed7a6164e79d69b402b2 Merge branch 'v2.6.x' --- diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c index 317edd3..e9fa112 100644 --- a/src/php_http_client_curl.c +++ b/src/php_http_client_curl.c @@ -1795,9 +1795,15 @@ static ZEND_RESULT_CODE php_http_curlm_option_set_share_cookies(php_http_option_ } else { rc = curl_share_setopt(curl->handle->share, CURLSHOPT_UNSHARE, CURL_LOCK_DATA_COOKIE); } - return CURLSHE_OK == rc ? SUCCESS : FAILURE; + + if (CURLSHE_OK != rc) { + php_error_docref(NULL, E_NOTICE, "Could not set option %s (%s)", opt->name->val, curl_share_strerror(rc)); + return FAILURE; + } + return SUCCESS; } +#if PHP_HTTP_CURL_VERSION(7,23,0) static ZEND_RESULT_CODE php_http_curlm_option_set_share_ssl(php_http_option_t *opt, zval *value, void *userdata) { php_http_client_t *client = userdata; @@ -1809,8 +1815,14 @@ static ZEND_RESULT_CODE php_http_curlm_option_set_share_ssl(php_http_option_t *o } else { rc = curl_share_setopt(curl->handle->share, CURLSHOPT_UNSHARE, CURL_LOCK_DATA_SSL_SESSION); } - return CURLSHE_OK == rc ? SUCCESS : FAILURE; + + if (CURLSHE_OK != rc) { + php_error_docref(NULL, E_NOTICE, "Could not set option %s (%s)", opt->name->val, curl_share_strerror(rc)); + return FAILURE; + } + return SUCCESS; } +#endif static void php_http_curlm_options_init(php_http_options_t *registry) { @@ -1868,10 +1880,12 @@ static void php_http_curlm_options_init(php_http_options_t *registry) opt->setter = php_http_curlm_option_set_share_cookies; ZVAL_TRUE(&opt->defval); } +#if PHP_HTTP_CURL_VERSION(7,23,0) if ((opt = php_http_option_register(registry, ZEND_STRL("share_ssl"), 0, _IS_BOOL))) { opt->setter = php_http_curlm_option_set_share_ssl; ZVAL_TRUE(&opt->defval); } +#endif } static ZEND_RESULT_CODE php_http_curlm_set_option(php_http_option_t *opt, zval *val, void *userdata) @@ -1901,15 +1915,18 @@ static ZEND_RESULT_CODE php_http_curlm_set_option(php_http_option_t *opt, zval * case _IS_BOOL: if (CURLM_OK != (rc = curl_multi_setopt(ch, opt->option, (long) zend_is_true(val)))) { rv = FAILURE; + php_error_docref(NULL, E_NOTICE, "Could not set option %s (%s)", opt->name->val, curl_multi_strerror(rc)); } break; case IS_LONG: if (CURLM_OK != (rc = curl_multi_setopt(ch, opt->option, Z_LVAL_P(val)))) { rv = FAILURE; + php_error_docref(NULL, E_NOTICE, "Could not set option %s (%s)", opt->name->val, curl_multi_strerror(rc)); } break; default: rv = FAILURE; + php_error_docref(NULL, E_NOTICE, "Could not set option %s", opt->name->val); break; } } @@ -1918,9 +1935,6 @@ static ZEND_RESULT_CODE php_http_curlm_set_option(php_http_option_t *opt, zval * zval_ptr_dtor(val); } - if (rv != SUCCESS) { - php_error_docref(NULL, E_NOTICE, "Could not set option %s (%s)", opt->name->val, curl_easy_strerror(rc)); - } return rv; } diff --git a/src/php_http_curl.h b/src/php_http_curl.h index 0c533bd..7a9821c 100644 --- a/src/php_http_curl.h +++ b/src/php_http_curl.h @@ -19,6 +19,10 @@ #define PHP_HTTP_CURL_VERSION(x, y, z) (LIBCURL_VERSION_NUM >= (((x)<<16) + ((y)<<8) + (z))) #define PHP_HTTP_CURL_FEATURE(f) (curl_version_info(CURLVERSION_NOW)->features & (f)) +#if !PHP_HTTP_CURL_VERSION(7,21,5) +# define CURLE_UNKNOWN_OPTION CURLE_FAILED_INIT +#endif + PHP_MINIT_FUNCTION(http_curl); PHP_MSHUTDOWN_FUNCTION(http_curl);