projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
coverity fixes
[m6w6/ext-http]
/
src
/
php_http_client_curl.c
diff --git
a/src/php_http_client_curl.c
b/src/php_http_client_curl.c
index 9d41e2979f4b61c1e69852b5fecb6a7aa46848ae..cca6a27cd869422bed12e8c9a81058650b94153c 100644
(file)
--- a/
src/php_http_client_curl.c
+++ b/
src/php_http_client_curl.c
@@
-474,6
+474,12
@@
static ZEND_RESULT_CODE php_http_curle_get_info(CURL *ch, HashTable *info)
zend_hash_str_update(info, "local_port", lenof("local_port"), &tmp);
}
#endif
zend_hash_str_update(info, "local_port", lenof("local_port"), &tmp);
}
#endif
+#if PHP_HTTP_CURL_VERSION(7,50,0)
+ if (CURLE_OK == curl_easy_getinfo(ch, CURLINFO_HTTP_VERSION, &l)) {
+ ZVAL_LONG(&tmp, l);
+ zend_hash_str_update(info, "http_version", lenof("http_version"), &tmp);
+ }
+#endif
/* END::CURLINFO */
/* END::CURLINFO */
@@
-1627,7
+1633,7
@@
static ZEND_RESULT_CODE php_http_curlm_option_set_use_eventloop(php_http_option_
php_http_client_t *client = userdata;
php_http_client_curl_ops_t *ev_ops = NULL;
php_http_client_t *client = userdata;
php_http_client_curl_ops_t *ev_ops = NULL;
- if (Z_TYPE_P(value) == IS_OBJECT && instanceof_function(Z_OBJCE_P(value), php_http_client_curl_user_get_class_entry())) {
+ if (
value &&
Z_TYPE_P(value) == IS_OBJECT && instanceof_function(Z_OBJCE_P(value), php_http_client_curl_user_get_class_entry())) {
ev_ops = php_http_client_curl_user_ops_get();
#if PHP_HTTP_HAVE_EVENT
} else if (value && zend_is_true(value)) {
ev_ops = php_http_client_curl_user_ops_get();
#if PHP_HTTP_HAVE_EVENT
} else if (value && zend_is_true(value)) {
@@
-2277,19
+2283,21
@@
static ZEND_RESULT_CODE php_http_client_curl_exec(php_http_client_t *h)
{
php_http_client_curl_t *curl = h->ctx;
{
php_http_client_curl_t *curl = h->ctx;
- 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
#ifdef PHP_WIN32
- /* see http://msdn.microsoft.com/library/en-us/winsock/winsock/windows_sockets_error_codes_2.asp */
- php_error_docref(NULL, 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, E_WARNING, "WinSock error: %d", WSAGetLastError());
#else
#else
- php_error_docref(NULL, E_WARNING, "%s", strerror(errno));
+
php_error_docref(NULL, E_WARNING, "%s", strerror(errno));
#endif
#endif
- return FAILURE;
+ return FAILURE;
+ }
}
}
}
}