- Fixed build on php-trunk
[m6w6/ext-http] / http.c
diff --git a/http.c b/http.c
index 0299d2f920d904d7422898353d219e32d59bacef..a2ffaf9fa40f64554719467a61711dc0d797d902 100644 (file)
--- a/http.c
+++ b/http.c
@@ -6,7 +6,7 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2007, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
@@ -14,6 +14,7 @@
 
 #define HTTP_WANT_SAPI
 #define HTTP_WANT_CURL
+#define HTTP_WANT_EVENT
 #define HTTP_WANT_ZLIB
 #define HTTP_WANT_MAGIC
 #include "php_http.h"
@@ -140,6 +141,9 @@ static zend_module_dep http_module_deps[] = {
 #      ifdef HTTP_HAVE_ICONV
        ZEND_MOD_REQUIRED("iconv")
 #      endif
+#      ifdef HTTP_HAVE_EVENT
+       ZEND_MOD_CONFLICTS("event")
+#endif
        {NULL, NULL, NULL, 0}
 };
 #endif
@@ -160,7 +164,7 @@ zend_module_entry http_module_entry = {
        PHP_RINIT(http),
        PHP_RSHUTDOWN(http),
        PHP_MINFO(http),
-       PHP_EXT_HTTP_VERSION,
+       PHP_HTTP_VERSION,
        STANDARD_MODULE_PROPERTIES
 };
 /* }}} */
@@ -201,13 +205,15 @@ static inline void _http_globals_free(zend_http_globals *G TSRMLS_DC)
        }
 }
 
-#if PHP_DEBUG
+#if defined(ZTS) && defined(PHP_DEBUG)
+#if ZTS && PHP_DEBUG
 zend_http_globals *http_globals(void)
 {
        TSRMLS_FETCH();
        return HTTP_G;
 }
 #endif
+#endif
 /* }}} */
 
 /* {{{ static inline void http_check_allowed_methods(char *) */
@@ -337,6 +343,7 @@ PHP_MSHUTDOWN_FUNCTION(http)
                || SUCCESS != PHP_MSHUTDOWN_CALL(http_request_datashare)
 #      endif
 #endif
+               || SUCCESS != PHP_MSHUTDOWN_CALL(http_message_object)
                || SUCCESS != PHP_MSHUTDOWN_CALL(http_persistent_handle) /* last */
        ) {
                return FAILURE;
@@ -361,6 +368,9 @@ PHP_RINIT_FUNCTION(http)
 #endif
 #ifdef HTTP_HAVE_CURL
 #      ifdef ZEND_ENGINE_2
+#              ifdef HTTP_HAVE_EVENT
+               || SUCCESS != PHP_RINIT_CALL(http_request_pool)
+#              endif
                || SUCCESS != PHP_RINIT_CALL(http_request_datashare)
 #      endif
 #endif
@@ -402,8 +412,8 @@ PHP_MINFO_FUNCTION(http)
 {
        php_info_print_table_start();
        {
-               php_info_print_table_row(2, "HTTP Support", "enabled");
-               php_info_print_table_row(2, "Extension Version", PHP_EXT_HTTP_VERSION);
+               php_info_print_table_header(2, "HTTP Support", "enabled");
+               php_info_print_table_row(2, "Extension Version", PHP_HTTP_VERSION);
                php_info_print_table_row(2, "Registered Classes",
 #ifndef ZEND_ENGINE_2
                        "none"
@@ -445,6 +455,11 @@ PHP_MINFO_FUNCTION(http)
 #else
                php_info_print_table_row(2, "libcurl", "disabled", "disabled");
 #endif
+#ifdef HTTP_HAVE_EVENT
+               php_info_print_table_row(3, "libevent", HTTP_EVENT_VERSION, event_get_version());
+#else
+               php_info_print_table_row(3, "libevent", "disabled", "disabled");
+#endif
 #ifdef HTTP_HAVE_ZLIB
                php_info_print_table_row(3, "libz", ZLIB_VERSION, zlibVersion());
 #else
@@ -473,9 +488,11 @@ PHP_MINFO_FUNCTION(http)
                                        FOREACH_KEYVAL(pos2, *val, ident, sub) {
                                                if (    SUCCESS == zend_hash_find(Z_ARRVAL_PP(sub), ZEND_STRS("used"), (void *) &zused) &&
                                                                SUCCESS == zend_hash_find(Z_ARRVAL_PP(sub), ZEND_STRS("free"), (void *) &zfree)) {
-                                                       convert_to_string(*zused);
-                                                       convert_to_string(*zfree);
-                                                       php_info_print_table_row(4, provider.str, ident.str, Z_STRVAL_PP(zused), Z_STRVAL_PP(zfree));
+                                                       zval *used = http_zsep(IS_STRING, *zused);
+                                                       zval *free = http_zsep(IS_STRING, *zfree);
+                                                       php_info_print_table_row(4, provider.str, ident.str, Z_STRVAL_P(used), Z_STRVAL_P(free));
+                                                       zval_ptr_dtor(&used);
+                                                       zval_ptr_dtor(&free);
                                                } else {
                                                        php_info_print_table_row(4, provider.str, ident.str, "0", "0");
                                                }