PHP_HTTP_API void php_http_client_dtor(php_http_client_t *h)
{
+ php_http_client_reset(h);
+
if (h->ops->dtor) {
h->ops->dtor(h);
}
- zend_llist_clean(&h->requests);
- zend_llist_clean(&h->responses);
-
php_resource_factory_free(&h->rf);
}
if (php_http_client_enqueued(obj->client, msg_obj->message, NULL)) {
php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT, "Failed to enqueue request; request already in queue");
} else {
- php_http_client_enqueue_t q = {
- msg_obj->message,
- combined_options(getThis(), request TSRMLS_CC),
- msg_queue_dtor,
- msg_obj,
- {fci, fcc}
- };
+ php_http_client_enqueue_t q;
+ q.request = msg_obj->message;
+ q.options = combined_options(getThis(), request TSRMLS_CC);
+ q.dtor = msg_queue_dtor;
+ q.opaque = msg_obj;
+ q.closure.fci = fci;
+ q.closure.fcc = fcc;
if (fci.size) {
Z_ADDREF_P(fci.function_name);
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|f", &request, php_http_client_request_class_entry, &fci, &fcc)) {
php_http_client_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
php_http_message_object_t *msg_obj = zend_object_store_get_object(request TSRMLS_CC);
- php_http_client_enqueue_t q = {
- msg_obj->message,
- combined_options(getThis(), request TSRMLS_CC),
- msg_queue_dtor,
- msg_obj,
- {fci, fcc}
- };
+ php_http_client_enqueue_t q;
+ q.request = msg_obj->message;
+ q.options = combined_options(getThis(), request TSRMLS_CC);
+ q.dtor = msg_queue_dtor;
+ q.opaque = msg_obj;
+ q.closure.fci = fci;
+ q.closure.fcc = fcc;
if (fci.size) {
Z_ADDREF_P(fci.function_name);