#include "php_http_api.h"
#include "php_http_client.h"
-#include <ext/spl/spl_observer.h>
+#include "ext/spl/spl_observer.h"
/*
* array of name => php_http_client_driver_t*
php_http_client_object_t *obj = PHP_HTTP_OBJ(NULL, object);
zend_llist_element *el = NULL;
HashTable *props = Z_OBJPROP_P(object);
- uint32_t count = zend_hash_num_elements(props) + zend_llist_count(&obj->client->responses) + zend_llist_count(&obj->client->requests);
+ uint32_t count = zend_hash_num_elements(props) + zend_llist_count(&obj->client->responses) + zend_llist_count(&obj->client->requests) + 1;
zval *val;
*n = 0;
*table = obj->gc = erealloc(obj->gc, sizeof(zval) * count);
+#if PHP_HTTP_HAVE_CURL
+ if (obj->client->ops == php_http_client_curl_get_ops()) {
+ php_http_client_curl_t *curl = obj->client->ctx;
+
+ if (curl->ev_ops == php_http_client_curl_user_ops_get()) {
+ php_http_client_curl_user_context_t *ctx = curl->ev_ctx;
+
+ ZVAL_COPY_VALUE(&obj->gc[(*n)++], &ctx->user);
+ }
+ }
+#endif
+
for (el = obj->client->responses.head; el; el = el->next) {
php_http_message_object_t *response_obj = *(php_http_message_object_t **) el->data;
ZVAL_OBJ(&obj->gc[(*n)++], &response_obj->zo);
}
for (el = obj->client->requests.head; el; el = el->next) {
- php_http_client_enqueue_t *q = *(php_http_client_enqueue_t **) el->data;
+ php_http_client_enqueue_t *q = (php_http_client_enqueue_t *) el->data;
php_http_message_object_t *request_obj = q->opaque; /* FIXME */
ZVAL_OBJ(&obj->gc[(*n)++], &request_obj->zo);
}