- we actually never return by ref
[m6w6/ext-http] / http.c
diff --git a/http.c b/http.c
index 05244d18287a8080193a4e7d598bcdc87ae13cd3..831040916bf2eef7a72ff7e082ddf55644d75d18 100644 (file)
--- a/http.c
+++ b/http.c
 
 /* $Id$ */
 
-#ifdef HAVE_CONFIG_H
-#      include "config.h"
-#endif
-
+#define HTTP_WANT_SAPI
 #define HTTP_WANT_CURL
 #define HTTP_WANT_ZLIB
 #define HTTP_WANT_MAGIC
 #include "php_http.h"
 
-#include "SAPI.h"
 #include "php_ini.h"
 #include "ext/standard/info.h"
 #include "zend_extensions.h"
 #ifdef HTTP_HAVE_ZLIB
 #      include "php_http_encoding_api.h"
 #endif
+#include "php_http_url_api.h"
 
 #ifdef ZEND_ENGINE_2
 #      include "php_http_filter_api.h"
 #      include "php_http_util_object.h"
 #      include "php_http_message_object.h"
+#      include "php_http_querystring_object.h"
 #      ifndef WONKY
 #              include "php_http_response_object.h"
 #      endif
@@ -69,7 +67,11 @@ ZEND_GET_MODULE(http)
 zend_function_entry http_functions[] = {
        PHP_FE(http_test, NULL)
        PHP_FE(http_date, NULL)
-       PHP_FE(http_build_url, http_arg_pass_ref_3)
+       PHP_FE(http_build_url, http_arg_pass_ref_4)
+       PHP_FE(http_build_str, NULL)
+#ifndef ZEND_ENGINE_2
+       PHP_FALIAS(http_build_query, http_build_str)
+#endif
        PHP_FE(http_negotiate_language, http_arg_pass_ref_2)
        PHP_FE(http_negotiate_charset, http_arg_pass_ref_2)
        PHP_FE(http_negotiate_content_type, http_arg_pass_ref_2)
@@ -92,6 +94,7 @@ zend_function_entry http_functions[] = {
        PHP_FE(http_parse_cookie, NULL)
        PHP_FE(http_get_request_headers, NULL)
        PHP_FE(http_get_request_body, NULL)
+       PHP_FE(http_get_request_body_stream, NULL)
        PHP_FE(http_match_request_header, NULL)
 #ifdef HTTP_HAVE_CURL
        PHP_FE(http_get, http_arg_pass_ref_3)
@@ -105,9 +108,6 @@ zend_function_entry http_functions[] = {
        PHP_FE(http_request_method_unregister, NULL)
        PHP_FE(http_request_method_exists, NULL)
        PHP_FE(http_request_method_name, NULL)
-#ifndef ZEND_ENGINE_2
-       PHP_FE(http_build_query, NULL)
-#endif
        PHP_FE(ob_etaghandler, NULL)
 #ifdef HTTP_HAVE_ZLIB
        PHP_FE(http_deflate, NULL)
@@ -170,6 +170,10 @@ static void http_globals_init_once(zend_http_globals *G)
 static inline void _http_globals_init(zend_http_globals *G TSRMLS_DC)
 {
        G->send.buffer_size = HTTP_SENDBUF_SIZE;
+#ifndef HTTP_HAVE_SAPI_RTIME
+       G->request_time = time(NULL);
+#endif
+       G->read_post_data = 0;
 }
 
 #define http_globals_free(g) _http_globals_free((g) TSRMLS_CC)
@@ -236,6 +240,7 @@ PHP_MINIT_FUNCTION(http)
        
        if (    (SUCCESS != PHP_MINIT_CALL(http_support))       ||
                        (SUCCESS != PHP_MINIT_CALL(http_send))          ||
+                       (SUCCESS != PHP_MINIT_CALL(http_url))           ||
 #ifdef HTTP_HAVE_CURL
                        (SUCCESS != PHP_MINIT_CALL(http_request))       ||
 #endif /* HTTP_HAVE_CURL */
@@ -250,6 +255,7 @@ PHP_MINIT_FUNCTION(http)
        if (    (SUCCESS != PHP_MINIT_CALL(http_filter))                        ||
                        (SUCCESS != PHP_MINIT_CALL(http_util_object))           ||
                        (SUCCESS != PHP_MINIT_CALL(http_message_object))        ||
+                       (SUCCESS != PHP_MINIT_CALL(http_querystring_object))||
 #      ifndef WONKY
                        (SUCCESS != PHP_MINIT_CALL(http_response_object))       ||
 #      endif /* WONKY */
@@ -284,13 +290,13 @@ PHP_MSHUTDOWN_FUNCTION(http)
 /* {{{ PHP_RINIT_FUNCTION */
 PHP_RINIT_FUNCTION(http)
 {
+       http_globals_init(HTTP_GLOBALS);
+
        if (HTTP_G(request).methods.allowed) {
                http_check_allowed_methods(HTTP_G(request).methods.allowed, 
                        strlen(HTTP_G(request).methods.allowed));
        }
 
-       http_globals_init(HTTP_GLOBALS);
-
        if (    (SUCCESS != PHP_RINIT_CALL(http_request_method))
 #ifdef HTTP_HAVE_ZLIB  
                ||      (SUCCESS != PHP_RINIT_CALL(http_encoding))
@@ -343,8 +349,9 @@ PHP_MINFO_FUNCTION(http)
                        "HttpInflateStream, "
 #      endif
 #      ifndef WONKY
-                       "HttpResponse"
+                       "HttpResponse"
 #      endif
+                       "HttpQueryString"
 #endif
                );
                php_info_print_table_row(2, "Output Handlers", "ob_deflatehandler, ob_inflatehandler, ob_etaghandler");