+ZEND_BEGIN_ARG_INFO_EX(ai_HttpClientResponse_getTransferInfo, 0, 0, 0)
+ ZEND_ARG_INFO(0, element)
+ZEND_END_ARG_INFO();
+static PHP_METHOD(HttpClientResponse, getTransferInfo)
+{
+ char *info_name = NULL;
+ int info_len = 0;
+
+ if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &info_name, &info_len)) {
+ zval **infop, *info = zend_read_property(php_http_client_response_get_class_entry(), getThis(), ZEND_STRL("transferInfo"), 0 TSRMLS_CC);
+
+ /* request completed? */
+ if (Z_TYPE_P(info) == IS_ARRAY) {
+ if (info_len && info_name) {
+ if (SUCCESS == zend_symtable_find(Z_ARRVAL_P(info), php_http_pretty_key(info_name, info_len, 0, 0), info_len + 1, (void *) &infop)) {
+ RETURN_ZVAL(*infop, 1, 0);
+ } else {
+ php_http_error(HE_NOTICE, PHP_HTTP_E_INVALID_PARAM, "Could not find transfer info named %s", info_name);
+ }
+ } else {
+ RETURN_ZVAL(info, 1, 0);
+ }
+ }
+ }
+ RETURN_FALSE;
+}