X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_client.h;h=fd77204fc6a53b772931b7ec36931f8486c20835;hp=6aa8abf282f6da9f0afe1a6d519ba22eb31afb4b;hb=ba429472d56e45d8ce65d47ec0b5027f3bba4407;hpb=53a654ed6e112b2766b41c01a1c2bb79373c59e4 diff --git a/src/php_http_client.h b/src/php_http_client.h index 6aa8abf..fd77204 100644 --- a/src/php_http_client.h +++ b/src/php_http_client.h @@ -35,6 +35,7 @@ typedef struct php_http_client_enqueue { zend_fcall_info fci; zend_fcall_info_cache fcc; } closure; + php_http_message_object_t *request_obj; /* supplemental to request */ } php_http_client_enqueue_t; typedef struct php_http_client *(*php_http_client_init_func_t)(struct php_http_client *p, void *init_arg); @@ -90,6 +91,14 @@ typedef struct php_http_client_progress_state { typedef ZEND_RESULT_CODE (*php_http_client_response_callback_t)(void *arg, struct php_http_client *client, php_http_client_enqueue_t *e, php_http_message_t **response); typedef void (*php_http_client_progress_callback_t)(void *arg, struct php_http_client *client, php_http_client_enqueue_t *e, php_http_client_progress_state_t *state); +typedef void (*php_http_client_debug_callback_t)(void *arg, struct php_http_client *client, php_http_client_enqueue_t *e, unsigned type, const char *data, size_t size); + +#define PHP_HTTP_CLIENT_DEBUG_INFO 0x00 +#define PHP_HTTP_CLIENT_DEBUG_IN 0x01 +#define PHP_HTTP_CLIENT_DEBUG_OUT 0x02 +#define PHP_HTTP_CLIENT_DEBUG_HEADER 0x10 +#define PHP_HTTP_CLIENT_DEBUG_BODY 0x20 +#define PHP_HTTP_CLIENT_DEBUG_SSL 0x40 typedef struct php_http_client { void *ctx; @@ -105,6 +114,11 @@ typedef struct php_http_client { php_http_client_progress_callback_t func; void *arg; } progress; + struct { + php_http_client_debug_callback_t func; + void *arg; + } debug; + unsigned depth; } callback; zend_llist requests; @@ -117,7 +131,12 @@ typedef struct php_http_client_object { php_http_client_t *client; php_http_object_method_t *update; php_http_object_method_t notify; + struct { + zend_fcall_info fci; + zend_fcall_info_cache fcc; + } debug; long iterator; + zval *gc; zend_object zo; } php_http_client_object_t;