diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-07 11:12:41 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-09-07 11:12:41 +0200 |
commit | 85b5dc4711f6ce8b979ed60e3b60cf93225be32a (patch) | |
tree | d1472d494a4c61677a46d8f192ade81a2ba60eb9 /ext/curl/php_curl.h | |
parent | d1ac7e3ab1bf3cf639ddbd63ed3824e8bb9fc32f (diff) | |
download | php-git-85b5dc4711f6ce8b979ed60e3b60cf93225be32a.tar.gz |
Private/public split curl header
To allow exporting the php_curl.h header containing curl class
entries, split off a separate curl_private.h header with all the
implementation details.
We may move or expose additional APIs in php_curl.h on an as-needed
basis.
Diffstat (limited to 'ext/curl/php_curl.h')
-rw-r--r-- | ext/curl/php_curl.h | 139 |
1 files changed, 1 insertions, 138 deletions
diff --git a/ext/curl/php_curl.h b/ext/curl/php_curl.h index 2a195b082b..ebb56278aa 100644 --- a/ext/curl/php_curl.h +++ b/ext/curl/php_curl.h @@ -19,9 +19,6 @@ #define _PHP_CURL_H #include "php.h" -#include "zend_smart_str.h" - -#define PHP_CURL_DEBUG 0 #ifdef PHP_WIN32 # define PHP_CURL_API __declspec(dllexport) @@ -31,146 +28,12 @@ # define PHP_CURL_API #endif -#include "php_version.h" -#define PHP_CURL_VERSION PHP_VERSION - -#include <curl/curl.h> -#include <curl/multi.h> - extern zend_module_entry curl_module_entry; #define phpext_curl_ptr &curl_module_entry -#define CURLOPT_RETURNTRANSFER 19913 -#define CURLOPT_BINARYTRANSFER 19914 /* For Backward compatibility */ -#define PHP_CURL_STDOUT 0 -#define PHP_CURL_FILE 1 -#define PHP_CURL_USER 2 -#define PHP_CURL_DIRECT 3 -#define PHP_CURL_RETURN 4 -#define PHP_CURL_IGNORE 7 - -#define SAVE_CURL_ERROR(__handle, __err) \ - do { (__handle)->err.no = (int) __err; } while (0) - -PHP_MINIT_FUNCTION(curl); -PHP_MSHUTDOWN_FUNCTION(curl); -PHP_MINFO_FUNCTION(curl); - -typedef struct { - zval func_name; - zend_fcall_info_cache fci_cache; - FILE *fp; - smart_str buf; - int method; - zval stream; -} php_curl_write; - -typedef struct { - zval func_name; - zend_fcall_info_cache fci_cache; - FILE *fp; - zend_resource *res; - int method; - zval stream; -} php_curl_read; - -typedef struct { - zval func_name; - zend_fcall_info_cache fci_cache; - int method; -} php_curl_progress, php_curl_fnmatch, php_curlm_server_push; - -typedef struct { - php_curl_write *write; - php_curl_write *write_header; - php_curl_read *read; - zval std_err; - php_curl_progress *progress; -#if LIBCURL_VERSION_NUM >= 0x071500 /* Available since 7.21.0 */ - php_curl_fnmatch *fnmatch; -#endif -} php_curl_handlers; - -struct _php_curl_error { - char str[CURL_ERROR_SIZE + 1]; - int no; -}; - -struct _php_curl_send_headers { - zend_string *str; -}; - -struct _php_curl_free { - zend_llist str; - zend_llist post; - zend_llist stream; - HashTable *slist; -}; - -typedef struct { - CURL *cp; - php_curl_handlers *handlers; - struct _php_curl_free *to_free; - struct _php_curl_send_headers header; - struct _php_curl_error err; - zend_bool in_callback; - uint32_t* clone; - zval postfields; - zend_object std; -} php_curl; - -#define CURLOPT_SAFE_UPLOAD -1 - -typedef struct { - php_curlm_server_push *server_push; -} php_curlm_handlers; - -typedef struct { - int still_running; - CURLM *multi; - zend_llist easyh; - php_curlm_handlers *handlers; - struct { - int no; - } err; - zend_object std; -} php_curlm; - -typedef struct { - CURLSH *share; - struct { - int no; - } err; - zend_object std; -} php_curlsh; - -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); -int curl_cast_object(zend_object *obj, zval *result, int type); - +PHP_CURL_API extern zend_class_entry *curl_multi_ce; PHP_CURL_API extern zend_class_entry *curl_CURLFile_class; #endif /* _PHP_CURL_H */ |