diff options
Diffstat (limited to 'ext/curl/php_curl.h')
-rw-r--r-- | ext/curl/php_curl.h | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/ext/curl/php_curl.h b/ext/curl/php_curl.h index 2013e1cef2..a469d5e41c 100644 --- a/ext/curl/php_curl.h +++ b/ext/curl/php_curl.h @@ -59,22 +59,10 @@ extern zend_module_entry curl_module_entry; #define SAVE_CURL_ERROR(__handle, __err) \ do { (__handle)->err.no = (int) __err; } while (0) -extern int le_curl; -#define le_curl_name "cURL handle" -extern int le_curl_multi_handle; -#define le_curl_multi_handle_name "cURL Multi Handle" -extern int le_curl_share_handle; -#define le_curl_share_handle_name "cURL Share Handle" -//extern int le_curl_pushheaders; -//#define le_curl_pushheaders "cURL Push Headers" - PHP_MINIT_FUNCTION(curl); PHP_MSHUTDOWN_FUNCTION(curl); PHP_MINFO_FUNCTION(curl); -void _php_curl_multi_close(zend_resource *); -void _php_curl_share_close(zend_resource *); - typedef struct { zval func_name; zend_fcall_info_cache fci_cache; @@ -129,15 +117,13 @@ struct _php_curl_free { typedef struct { CURL *cp; php_curl_handlers *handlers; - zend_resource *res; struct _php_curl_free *to_free; struct _php_curl_send_headers header; struct _php_curl_error err; zend_bool in_callback; uint32_t* clone; -#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */ zval postfields; -#endif + zend_object std; } php_curl; #define CURLOPT_SAFE_UPLOAD -1 @@ -154,6 +140,7 @@ typedef struct { struct { int no; } err; + zend_object std; } php_curlm; typedef struct { @@ -161,15 +148,35 @@ typedef struct { struct { int no; } err; + zend_object std; } php_curlsh; -php_curl *alloc_curl_handle(); +php_curl *init_curl_handle_into_zval(zval *curl); +void init_curl_handle(php_curl *ch); void _php_curl_cleanup_handle(php_curl *); void _php_curl_multi_cleanup_list(void *data); void _php_curl_verify_handlers(php_curl *ch, int reporterror); void _php_setup_easy_copy_handlers(php_curl *ch, php_curl *source); +static inline php_curl *curl_from_obj(zend_object *obj) { + return (php_curl *)((char *)(obj) - XtOffsetOf(php_curl, std)); +} + +#define Z_CURL_P(zv) curl_from_obj(Z_OBJ_P(zv)) + +static inline php_curlsh *curl_share_from_obj(zend_object *obj) { + return (php_curlsh *)((char *)(obj) - XtOffsetOf(php_curlsh, std)); +} + +#define Z_CURL_SHARE_P(zv) curl_share_from_obj(Z_OBJ_P(zv)) + +PHP_CURL_API extern zend_class_entry *curl_ce; +PHP_CURL_API extern zend_class_entry *curl_share_ce; + +void curl_multi_register_class(const zend_function_entry *method_entries); +void curl_share_register_class(const zend_function_entry *method_entries); void curlfile_register_class(void); + PHP_CURL_API extern zend_class_entry *curl_CURLFile_class; #else |