#ifndef PHP_HTTP_REQUEST_API_H
#define PHP_HTTP_REQUEST_API_H
+
+#define http_request_supports_ssl() _http_request_supports_ssl()
+extern zend_bool _http_request_supports_ssl(void);
+
+
#ifdef HTTP_HAVE_CURL
#include "php_http_std_defs.h"
#ifdef PHP_WIN32
# include <winsock2.h>
#endif
-
#include <curl/curl.h>
+extern PHP_MINIT_FUNCTION(http_request);
+extern PHP_MSHUTDOWN_FUNCTION(http_request);
+
#define HTTP_REQUEST_BODY_CSTRING 1
#define HTTP_REQUEST_BODY_CURLPOST 2
#define HTTP_REQUEST_BODY_UPLOADFILE 3
typedef struct {
void ***tsrm_ctx;
void *data;
-} http_curl_callback_ctx;
+} http_request_callback_ctx;
typedef struct {
phpstr *response;
phpstr *request;
curl_infotype last_info;
-} http_curl_conv;
+} http_request_conv;
+
+#define HTTP_REQUEST_CALLBACK_DATA(from, type, var) \
+ http_request_callback_ctx *__CTX = (http_request_callback_ctx *) (from); \
+ TSRMLS_FETCH_FROM_CTX(__CTX->tsrm_ctx); \
+ type (var) = (type) (__CTX->data)
+
+#define http_request_callback_data(data) _http_request_callback_data_ex((data), 1 TSRMLS_CC)
+#define http_request_callback_data_ex(data, copy) _http_request_callback_data_ex((data), (copy) TSRMLS_CC)
+extern http_request_callback_ctx *_http_request_callback_data_ex(void *data, zend_bool cpy TSRMLS_DC);
+
#define COPY_STRING 1
#define COPY_SLIST 2