X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http.h;h=fd925f69416975c0650484404ace860572f2da58;hp=5f96f524014a70e427a0356e85b7254fe14cc7f7;hb=af674f03c32f0f56b7f8c67e61c7e86b3ea23be5;hpb=9c566f3419df4dc202540b2e9ab042bef72263b7 diff --git a/php_http.h b/php_http.h index 5f96f52..fd925f6 100644 --- a/php_http.h +++ b/php_http.h @@ -18,7 +18,7 @@ #ifndef PHP_EXT_HTTP_H #define PHP_EXT_HTTP_H -#define PHP_EXT_HTTP_VERSION "0.4.0" +#define HTTP_PEXT_VERSION "0.7.0-dev" /* make compile on Win32 */ #include "php_streams.h" @@ -28,16 +28,128 @@ extern zend_module_entry http_module_entry; #define phpext_http_ptr &http_module_entry #ifdef ZTS -#include "TSRM.h" -#define HTTP_G(v) TSRMG(http_globals_id, zend_http_globals *, v) +# include "TSRM.h" +# define HTTP_G(v) TSRMG(http_globals_id, zend_http_globals *, v) #else -#define HTTP_G(v) (http_globals.v) +# define HTTP_G(v) (http_globals.v) #endif -#ifndef ZEND_ENGINE_2 -#include "php_http_build_query.h" +#ifdef ZEND_ENGINE_2 + +typedef struct { + zend_object zo; +} http_response_object; + +#ifdef HTTP_HAVE_CURL + +#include "phpstr/phpstr.h" + +#ifdef PHP_WIN32 +# include #endif +#include + +typedef struct { + zend_object zo; + CURL *ch; +} http_request_object; + +typedef enum { + HTTP_GET, + HTTP_HEAD, + HTTP_POST, +} http_request_method; + +#endif /* HTTP_HAVE _CURL */ + +PHP_METHOD(HttpUtil, date); +PHP_METHOD(HttpUtil, absoluteURI); +PHP_METHOD(HttpUtil, negotiateLanguage); +PHP_METHOD(HttpUtil, negotiateCharset); +PHP_METHOD(HttpUtil, redirect); +PHP_METHOD(HttpUtil, sendStatus); +PHP_METHOD(HttpUtil, sendLastModified); +PHP_METHOD(HttpUtil, sendContentType); +PHP_METHOD(HttpUtil, sendContentDisposition); +PHP_METHOD(HttpUtil, matchModified); +PHP_METHOD(HttpUtil, matchEtag); +PHP_METHOD(HttpUtil, cacheLastModified); +PHP_METHOD(HttpUtil, cacheEtag); +PHP_METHOD(HttpUtil, chunkedDecode); +PHP_METHOD(HttpUtil, splitResponse); +PHP_METHOD(HttpUtil, parseHeaders); +PHP_METHOD(HttpUtil, getRequestHeaders); +#ifdef HTTP_HAVE_CURL +PHP_METHOD(HttpUtil, get); +PHP_METHOD(HttpUtil, head); +PHP_METHOD(HttpUtil, postData); +PHP_METHOD(HttpUtil, postArray); +#endif /* HTTP_HAVE_CURL */ +PHP_METHOD(HttpUtil, authBasic); +PHP_METHOD(HttpUtil, authBasicCallback); + + +PHP_METHOD(HttpResponse, __construct);/* +PHP_METHOD(HttpResponse, __destruct);*/ +PHP_METHOD(HttpResponse, setETag); +PHP_METHOD(HttpResponse, getETag); +PHP_METHOD(HttpResponse, setContentDisposition); +PHP_METHOD(HttpResponse, getContentDisposition); +PHP_METHOD(HttpResponse, setContentType); +PHP_METHOD(HttpResponse, getContentType); +PHP_METHOD(HttpResponse, setCache); +PHP_METHOD(HttpResponse, getCache); +PHP_METHOD(HttpResponse, setCacheControl); +PHP_METHOD(HttpResponse, getCacheControl); +PHP_METHOD(HttpResponse, setGzip); +PHP_METHOD(HttpResponse, getGzip); +PHP_METHOD(HttpResponse, setData); +PHP_METHOD(HttpResponse, getData); +PHP_METHOD(HttpResponse, setFile); +PHP_METHOD(HttpResponse, getFile); +PHP_METHOD(HttpResponse, setStream); +PHP_METHOD(HttpResponse, getStream); +PHP_METHOD(HttpResponse, send); + +#ifdef HTTP_HAVE_CURL + +PHP_METHOD(HttpRequest, __construct); +PHP_METHOD(HttpRequest, __destruct); +PHP_METHOD(HttpRequest, setOptions); +PHP_METHOD(HttpRequest, getOptions); +PHP_METHOD(HttpRequest, unsetOptions); +PHP_METHOD(HttpRequest, addHeader); +PHP_METHOD(HttpRequest, addCookie); +PHP_METHOD(HttpRequest, setMethod); +PHP_METHOD(HttpRequest, getMethod); +PHP_METHOD(HttpRequest, setURL); +PHP_METHOD(HttpRequest, getURL); +PHP_METHOD(HttpRequest, setContentType); +PHP_METHOD(HttpRequest, getContentType); +PHP_METHOD(HttpRequest, setQueryData); +PHP_METHOD(HttpRequest, getQueryData); +PHP_METHOD(HttpRequest, addQueryData); +PHP_METHOD(HttpRequest, unsetQueryData); +PHP_METHOD(HttpRequest, setPostData); +PHP_METHOD(HttpRequest, getPostData); +PHP_METHOD(HttpRequest, addPostData); +PHP_METHOD(HttpRequest, unsetPostData); +PHP_METHOD(HttpRequest, addPostFile); +PHP_METHOD(HttpRequest, getPostFiles); +PHP_METHOD(HttpRequest, unsetPostFiles); +PHP_METHOD(HttpRequest, send); +PHP_METHOD(HttpRequest, getResponseData); +PHP_METHOD(HttpRequest, getResponseHeader); +PHP_METHOD(HttpRequest, getResponseCode); +PHP_METHOD(HttpRequest, getResponseBody); +PHP_METHOD(HttpRequest, getResponseInfo); + +#endif /* HTTP_HAVE_CURL */ + +#endif /* ZEND_ENGINE_2 */ + +PHP_FUNCTION(http_test); PHP_FUNCTION(http_date); PHP_FUNCTION(http_absolute_uri); PHP_FUNCTION(http_negotiate_language); @@ -45,28 +157,35 @@ PHP_FUNCTION(http_negotiate_charset); PHP_FUNCTION(http_redirect); PHP_FUNCTION(http_send_status); PHP_FUNCTION(http_send_last_modified); +PHP_FUNCTION(http_send_content_type); +PHP_FUNCTION(http_send_content_disposition); PHP_FUNCTION(http_match_modified); PHP_FUNCTION(http_match_etag); PHP_FUNCTION(http_cache_last_modified); PHP_FUNCTION(http_cache_etag); -PHP_FUNCTION(http_content_type); -PHP_FUNCTION(http_content_disposition); PHP_FUNCTION(http_send_data); PHP_FUNCTION(http_send_file); PHP_FUNCTION(http_send_stream); PHP_FUNCTION(http_chunked_decode); PHP_FUNCTION(http_split_response); PHP_FUNCTION(http_parse_headers); +PHP_FUNCTION(http_get_request_headers); #ifdef HTTP_HAVE_CURL PHP_FUNCTION(http_get); PHP_FUNCTION(http_head); PHP_FUNCTION(http_post_data); PHP_FUNCTION(http_post_array); -#endif +#endif /* HTTP_HAVE_CURL */ PHP_FUNCTION(http_auth_basic); PHP_FUNCTION(http_auth_basic_cb); +#ifndef ZEND_ENGINE_2 +PHP_FUNCTION(http_build_query); +#endif /* ZEND_ENGINE_2 */ +PHP_FUNCTION(ob_httpetaghandler); PHP_MINIT_FUNCTION(http); +PHP_MSHUTDOWN_FUNCTION(http); +PHP_RINIT_FUNCTION(http); PHP_RSHUTDOWN_FUNCTION(http); PHP_MINFO_FUNCTION(http); @@ -77,20 +196,11 @@ ZEND_BEGIN_MODULE_GLOBALS(http) char *ctype; char *etag; time_t lmod; + char *allowed_methods; #ifdef HTTP_HAVE_CURL - struct { - struct { - char *data; - size_t used; - size_t free; - } body; - struct { - char *data; - size_t used; - size_t free; - } hdrs; - } curlbuf; -#endif + phpstr curlbuf; + zend_llist to_free; +#endif /* HTTP_HAVE_CURL */ ZEND_END_MODULE_GLOBALS(http) #endif /* PHP_HTTP_H */