-
- /* perform request */
- if (CURLE_OK != (result = curl_easy_perform(ch))) {
- http_error_ex(E_WARNING, HTTP_E_CURL, "Could not perform request: %s", curl_easy_strerror(result));
- return FAILURE;
- } else {
- /* get curl info */
- if (info) {
- http_request_info(ch, info);
- }
- return SUCCESS;
- }
-}
-/* }}} */
-
-/* {{{ void http_request_info(CURL *, HashTable *) */
-PHP_HTTP_API void _http_request_info(CURL *ch, HashTable *info TSRMLS_DC)
-{
- zval array;
- Z_ARRVAL(array) = info;
-
- HTTP_CURL_INFO(EFFECTIVE_URL);
-#if LIBCURL_VERSION_NUM >= 0x070a07
- HTTP_CURL_INFO(RESPONSE_CODE);
-#else
- HTTP_CURL_INFO_EX(HTTP_CODE, RESPONSE_CODE);
-#endif
- HTTP_CURL_INFO(HTTP_CONNECTCODE);
-#if LIBCURL_VERSION_NUM >= 0x070500
- HTTP_CURL_INFO(FILETIME);
-#endif
- HTTP_CURL_INFO(TOTAL_TIME);
- HTTP_CURL_INFO(NAMELOOKUP_TIME);
- HTTP_CURL_INFO(CONNECT_TIME);
- HTTP_CURL_INFO(PRETRANSFER_TIME);
- HTTP_CURL_INFO(STARTTRANSFER_TIME);
-#if LIBCURL_VERSION_NUM >= 0x070907
- HTTP_CURL_INFO(REDIRECT_TIME);
- HTTP_CURL_INFO(REDIRECT_COUNT);
-#endif
- HTTP_CURL_INFO(SIZE_UPLOAD);
- HTTP_CURL_INFO(SIZE_DOWNLOAD);
- HTTP_CURL_INFO(SPEED_DOWNLOAD);
- HTTP_CURL_INFO(SPEED_UPLOAD);
- HTTP_CURL_INFO(HEADER_SIZE);
- HTTP_CURL_INFO(REQUEST_SIZE);
- HTTP_CURL_INFO(SSL_VERIFYRESULT);
-#if LIBCURL_VERSION_NUM >= 0x070c03
- /*HTTP_CURL_INFO(SSL_ENGINES); todo: CURLINFO_SLIST */
-#endif
- HTTP_CURL_INFO(CONTENT_LENGTH_DOWNLOAD);
- HTTP_CURL_INFO(CONTENT_LENGTH_UPLOAD);
- HTTP_CURL_INFO(CONTENT_TYPE);
-#if LIBCURL_VERSION_NUM >= 0x070a03
- /*HTTP_CURL_INFO(PRIVATE);*/
-#endif
-#if LIBCURL_VERSION_NUM >= 0x070a08
- HTTP_CURL_INFO(HTTPAUTH_AVAIL);
- HTTP_CURL_INFO(PROXYAUTH_AVAIL);
-#endif
-#if LIBCURL_VERSION_NUM >= 0x070c02
- /*HTTP_CURL_INFO(OS_ERRNO);*/
-#endif
-#if LIBCURL_VERSION_NUM >= 0x070c03
- HTTP_CURL_INFO(NUM_CONNECTS);
-#endif
-}
-/* }}} */
-
-/* {{{ STATUS http_request_ex(CURL *, http_request_method, char *, http_request_body, HashTable, HashTable, phpstr *) */
-PHP_HTTP_API STATUS _http_request_ex(CURL *ch, http_request_method meth, const char *url, http_request_body *body, HashTable *options, HashTable *info, phpstr *response TSRMLS_DC)
-{
- if (SUCCESS != http_request_init(ch, meth, url, body, options, response)) {
- return FAILURE;
- }
- return http_request_exec(ch, info);
-}
-/* }}} */
-
-/* {{{ char *http_request_method_name(http_request_method) */
-PHP_HTTP_API const char *_http_request_method_name(http_request_method m TSRMLS_DC)
-{
- zval **meth;
-
- if (HTTP_STD_REQUEST_METHOD(m)) {
- return http_request_methods[m];
- }
-
- if (SUCCESS == zend_hash_index_find(&HTTP_G(request).methods.custom, HTTP_CUSTOM_REQUEST_METHOD(m), (void **) &meth)) {
- return Z_STRVAL_PP(meth);