* release 0.6.0
[m6w6/ext-http] / php_http.h
index 43b5fad697e9e95e4a0428bc7dec068e8e75a3f5..447a09b1fa1c7f37e38498fdc8e2fcef8891dc93 100644 (file)
@@ -18,7 +18,7 @@
 #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.6.0"
 
 /* make compile on Win32 */
 #include "php_streams.h"
@@ -34,9 +34,28 @@ extern zend_module_entry http_module_entry;
 #      define HTTP_G(v) (http_globals.v)
 #endif
 
-#ifndef ZEND_ENGINE_2
-#      include "php_http_build_query.h"
-#else
+#ifdef ZEND_ENGINE_2
+
+typedef struct {
+       zend_object     zo;
+} httpi_response_object;
+
+#ifdef HTTP_HAVE_CURL
+
+#include <curl/curl.h>
+
+typedef struct {
+       zend_object zo;
+       CURL *ch;
+} httpi_request_object;
+
+typedef enum {
+       HTTP_GET,
+       HTTP_HEAD,
+       HTTP_POST,
+} http_request_method;
+
+#endif
 
 PHP_METHOD(HTTPi, date);
 PHP_METHOD(HTTPi, absoluteURI);
@@ -45,6 +64,8 @@ PHP_METHOD(HTTPi, negotiateCharset);
 PHP_METHOD(HTTPi, redirect);
 PHP_METHOD(HTTPi, sendStatus);
 PHP_METHOD(HTTPi, sendLastModified);
+PHP_METHOD(HTTPi, sendContentType);
+PHP_METHOD(HTTPi, sendContentDisposition);
 PHP_METHOD(HTTPi, matchModified);
 PHP_METHOD(HTTPi, matchEtag);
 PHP_METHOD(HTTPi, cacheLastModified);
@@ -84,7 +105,37 @@ PHP_METHOD(HTTPi_Response, getFile);
 PHP_METHOD(HTTPi_Response, setStream);
 PHP_METHOD(HTTPi_Response, getStream);
 PHP_METHOD(HTTPi_Response, send);
-PHP_METHOD(HTTPi_Response, getSize);
+
+#ifdef HTTP_HAVE_CURL
+
+PHP_METHOD(HTTPi_Request, __construct);
+PHP_METHOD(HTTPi_Request, __destruct);
+PHP_METHOD(HTTPi_Request, setOptions);
+PHP_METHOD(HTTPi_Request, getOptions);
+PHP_METHOD(HTTPi_Request, setMethod);
+PHP_METHOD(HTTPi_Request, getMethod);
+PHP_METHOD(HTTPi_Request, setURL);
+PHP_METHOD(HTTPi_Request, getURL);
+PHP_METHOD(HTTPi_Request, setContentType);
+PHP_METHOD(HTTPi_Request, getContentType);
+PHP_METHOD(HTTPi_Request, setQueryData);
+PHP_METHOD(HTTPi_Request, getQueryData);
+PHP_METHOD(HTTPi_Request, addQueryData);
+PHP_METHOD(HTTPi_Request, unsetQueryData);
+PHP_METHOD(HTTPi_Request, setPostData);
+PHP_METHOD(HTTPi_Request, getPostData);
+PHP_METHOD(HTTPi_Request, addPostData);
+PHP_METHOD(HTTPi_Request, unsetPostData);
+PHP_METHOD(HTTPi_Request, addPostFile);
+PHP_METHOD(HTTPi_Request, getPostFiles);
+PHP_METHOD(HTTPi_Request, unsetPostFiles);
+PHP_METHOD(HTTPi_Request, send);
+PHP_METHOD(HTTPi_Request, getResponseData);
+PHP_METHOD(HTTPi_Request, getResponseHeaders);
+PHP_METHOD(HTTPi_Request, getResponseBody);
+PHP_METHOD(HTTPi_Request, getResponseInfo);
+
+#endif /* HTTP_HAVE_CURL */
 
 #endif /* ZEND_ENGINE_2 */
 
@@ -96,12 +147,12 @@ 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);
@@ -117,7 +168,9 @@ PHP_FUNCTION(http_post_array);
 #endif
 PHP_FUNCTION(http_auth_basic);
 PHP_FUNCTION(http_auth_basic_cb);
-
+#ifndef ZEND_ENGINE_2
+PHP_FUNCTION(http_build_query);
+#endif
 PHP_FUNCTION(ob_httpetaghandler);
 
 PHP_MINIT_FUNCTION(http);
@@ -136,17 +189,12 @@ ZEND_BEGIN_MODULE_GLOBALS(http)
        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;
+               char *data;
+               size_t used;
+               size_t free;
+               size_t size;
        } curlbuf;
+       zend_llist to_free;
 #endif
 ZEND_END_MODULE_GLOBALS(http)