X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_client_curl.c;h=d4f051755a207db062c26565c37206a58450aadc;hp=8e53572c9ae4983ce320ed1e5a6dc03092300e79;hb=7f176b21742b58b6934d0bb833b922ff6ca54bff;hpb=a2aa970a129880a247baea08927f0d84188a0b19 diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c index 8e53572..d4f0517 100644 --- a/src/php_http_client_curl.c +++ b/src/php_http_client_curl.c @@ -1771,9 +1771,16 @@ 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) { + TSRMLS_FETCH_FROM_CTX(client->ts); + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Could not set option %s (%s)", opt->name.s, 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; @@ -1785,8 +1792,15 @@ 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) { + TSRMLS_FETCH_FROM_CTX(client->ts); + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Could not set option %s (%s)", opt->name.s, curl_share_strerror(rc)); + return FAILURE; + } + return SUCCESS; } +#endif static void php_http_curlm_options_init(php_http_options_t *registry TSRMLS_DC) { @@ -1844,10 +1858,12 @@ static void php_http_curlm_options_init(php_http_options_t *registry TSRMLS_DC) opt->setter = php_http_curlm_option_set_share_cookies; ZVAL_BOOL(&opt->defval, 1); } +#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_BOOL(&opt->defval, 1); } +#endif } static ZEND_RESULT_CODE php_http_curlm_set_option(php_http_option_t *opt, zval *val, void *userdata) @@ -1873,15 +1889,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) Z_BVAL_P(val)))) { rv = FAILURE; + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Could not set option %s (%s)", opt->name.s, 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 TSRMLS_CC, E_NOTICE, "Could not set option %s (%s)", opt->name.s, curl_multi_strerror(rc)); } break; default: rv = FAILURE; + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Could not set option %s", opt->name.s); break; } } @@ -1890,9 +1909,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 TSRMLS_CC, E_NOTICE, "Could not set option %s (%s)", opt->name.s, curl_easy_strerror(rc)); - } return rv; }