X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http.h;h=8e724af7ba09dcd259b6d08f46754dcbcd4ece4c;hp=29d868c06f8e09f467526b723d6693a0e4e37fb5;hb=376bdc3230e8f6d2b8f167d4534e1dc8d0e0fc68;hpb=0d215d4f181f34af40fad377570919dc978ff563 diff --git a/php_http.h b/php_http.h index 29d868c..8e724af 100644 --- a/php_http.h +++ b/php_http.h @@ -1,16 +1,13 @@ /* - +----------------------------------------------------------------------+ - | 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$ */ @@ -18,86 +15,165 @@ #ifndef PHP_EXT_HTTP_H #define PHP_EXT_HTTP_H -#define PHP_EXT_HTTP_VERSION "0.5.0-dev" +#define PHP_EXT_HTTP_VERSION "0.20.0dev" -/* make compile on Win32 */ -#include "php_streams.h" -#include "ext/standard/md5.h" +#include "php.h" +#include "php_http_std_defs.h" +#include "phpstr/phpstr.h" +#include "missing.h" + + +#ifdef HTTP_WANT_NETDB +# ifdef PHP_WIN32 +# include +# elif defined(HAVE_NETDB_H) +# include +# endif +#endif + +#if defined(HTTP_WANT_CURL) && defined(HTTP_HAVE_CURL) +# ifdef PHP_WIN32 +# include +# endif +# include +#endif + +#if defined(HTTP_WANT_MAGIC) && defined(HTTP_HAVE_MAGIC) +# if defined(PHP_WIN32) && !defined(USE_MAGIC_DLL) && !defined(USE_MAGIC_STATIC) +# define USE_MAGIC_STATIC +# endif +# include +#endif + +#if defined(HTTP_WANT_ZLIB) && defined(HTTP_HAVE_ZLIB) +# include +#endif + +#include extern zend_module_entry http_module_entry; #define phpext_http_ptr &http_module_entry +extern int http_module_number; + +ZEND_BEGIN_MODULE_GLOBALS(http) + + struct _http_globals_etag { + char *mode; + void *ctx; + zend_bool started; + } etag; + + struct _http_globals_log { + char *cache; + char *redirect; + char *allowed_methods; + char *composite; + } log; + + struct _http_globals_send { + double throttle_delay; + size_t buffer_size; + char *content_type; + char *unquoted_etag; + time_t last_modified; + int gzip_encoding; + } send; + + struct _http_globals_request { + struct _http_globals_request_methods { + char *allowed; + HashTable custom; + } methods; + +#ifdef HTTP_HAVE_CURL + struct _http_globals_request_copies { + zend_llist strings; + zend_llist slists; + zend_llist contexts; + zend_llist convs; + } copies; +# ifndef HAVE_CURL_EASY_STRERROR + char error[CURL_ERROR_SIZE + 1]; +# endif +#endif /* HTTP_HAVE_CURL */ + } request; + +#ifdef ZEND_ENGINE_2 + zend_bool only_exceptions; +#endif + + zend_bool force_exit; + +ZEND_END_MODULE_GLOBALS(http) + #ifdef ZTS # include "TSRM.h" # define HTTP_G(v) TSRMG(http_globals_id, zend_http_globals *, v) +# define HTTP_GLOBALS ((zend_http_globals *) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(http_globals_id)]) #else # define HTTP_G(v) (http_globals.v) +# define HTTP_GLOBALS (&http_globals) #endif +#define getGlobals(G) zend_http_globals *G = HTTP_GLOBALS; -#ifndef ZEND_ENGINE_2 -# include "php_http_build_query.h" -#endif - +PHP_FUNCTION(http_test); PHP_FUNCTION(http_date); -PHP_FUNCTION(http_absolute_uri); +PHP_FUNCTION(http_build_uri); PHP_FUNCTION(http_negotiate_language); PHP_FUNCTION(http_negotiate_charset); +PHP_FUNCTION(http_negotiate_content_type); PHP_FUNCTION(http_redirect); +PHP_FUNCTION(http_throttle); 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_message); PHP_FUNCTION(http_parse_headers); PHP_FUNCTION(http_get_request_headers); +PHP_FUNCTION(http_get_request_body); +PHP_FUNCTION(http_match_request_header); #ifdef HTTP_HAVE_CURL PHP_FUNCTION(http_get); PHP_FUNCTION(http_head); PHP_FUNCTION(http_post_data); -PHP_FUNCTION(http_post_array); +PHP_FUNCTION(http_post_fields); +PHP_FUNCTION(http_put_file); +PHP_FUNCTION(http_put_stream); +#endif /* HTTP_HAVE_CURL */ +PHP_FUNCTION(http_request_method_register); +PHP_FUNCTION(http_request_method_unregister); +PHP_FUNCTION(http_request_method_exists); +PHP_FUNCTION(http_request_method_name); +#ifndef ZEND_ENGINE_2 +PHP_FUNCTION(http_build_query); +#endif /* ZEND_ENGINE_2 */ +PHP_FUNCTION(ob_etaghandler); +#ifdef HTTP_HAVE_ZLIB +PHP_FUNCTION(http_gzencode); +PHP_FUNCTION(http_gzdecode); +PHP_FUNCTION(http_deflate); +PHP_FUNCTION(http_inflate); +PHP_FUNCTION(http_compress); +PHP_FUNCTION(http_uncompress); #endif -PHP_FUNCTION(http_auth_basic); -PHP_FUNCTION(http_auth_basic_cb); - -PHP_FUNCTION(ob_httpetaghandler); +PHP_FUNCTION(http_support); PHP_MINIT_FUNCTION(http); PHP_MSHUTDOWN_FUNCTION(http); +PHP_RINIT_FUNCTION(http); PHP_RSHUTDOWN_FUNCTION(http); PHP_MINFO_FUNCTION(http); -ZEND_BEGIN_MODULE_GLOBALS(http) - zend_bool etag_started; - PHP_MD5_CTX etag_md5; - php_stream_statbuf ssb; - 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 -ZEND_END_MODULE_GLOBALS(http) - #endif /* PHP_HTTP_H */ /*