X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=php_http_request_api.h;h=2da5f2282eaf93c4169568efe19205b032203705;hb=6fc78f4b8ea8a34a40f06985648822fbaa7ffb30;hp=202bb0b9d8f5e91f9fe144106193bf0bcd1480fb;hpb=61f165688d2cc39424678829a145c8cbab51d1af;p=m6w6%2Fext-http diff --git a/php_http_request_api.h b/php_http_request_api.h index 202bb0b..2da5f22 100644 --- a/php_http_request_api.h +++ b/php_http_request_api.h @@ -1,34 +1,26 @@ /* - +----------------------------------------------------------------------+ - | PECL :: http | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, that | - | is bundled with this package in the file LICENSE, and is available | - | through the world-wide-web at http://www.php.net/license/3_0.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Copyright (c) 2004-2005 Michael Wallner | - +----------------------------------------------------------------------+ + +--------------------------------------------------------------------+ + | PECL :: http | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted provided that the conditions mentioned | + | in the accompanying LICENSE file are met. | + +--------------------------------------------------------------------+ + | Copyright (c) 2004-2005, Michael Wallner | + +--------------------------------------------------------------------+ */ /* $Id$ */ #ifndef PHP_HTTP_REQUEST_API_H #define PHP_HTTP_REQUEST_API_H + #ifdef HTTP_HAVE_CURL -#include "php_http_std_defs.h" #include "php_http_request_method_api.h" -#include "phpstr/phpstr.h" - -#ifdef PHP_WIN32 -# include -#endif - -#include +extern PHP_MINIT_FUNCTION(http_request); +extern PHP_MSHUTDOWN_FUNCTION(http_request); #define HTTP_REQUEST_BODY_CSTRING 1 #define HTTP_REQUEST_BODY_CURLPOST 2 @@ -42,13 +34,23 @@ typedef struct { 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 @@ -78,7 +80,7 @@ PHP_HTTP_API STATUS _http_request_body_fill(http_request_body *body, HashTable * PHP_HTTP_API void _http_request_body_dtor(http_request_body *body TSRMLS_DC); #define http_request_body_free(b) _http_request_body_free((b) TSRMLS_CC) -PHP_HTTP_API void _http_request_body_free(http_request_body *body TSRMLS_DC); +PHP_HTTP_API void _http_request_body_free(http_request_body **body TSRMLS_DC); #define http_request_init(ch, meth, url, body, options) _http_request_init((ch), (meth), (url), (body), (options) TSRMLS_CC) PHP_HTTP_API STATUS _http_request_init(CURL *ch, http_request_method meth, char *url, http_request_body *body, HashTable *options TSRMLS_DC);