#include "php_http_request_method_api.h"
#ifdef HTTP_HAVE_CURL
# include "php_http_request_api.h"
+# include "php_http_request_pool_api.h"
# include "php_http_request_datashare_api.h"
+# ifdef HTTP_HAVE_PERSISTENT_HANDLES
+# include "php_http_persistent_handle_api.h"
+# endif
#endif
#ifdef HTTP_HAVE_ZLIB
# include "php_http_encoding_api.h"
/* {{{ http_functions[] */
zend_function_entry http_functions[] = {
- PHP_FE(http_test, NULL)
PHP_FE(http_date, NULL)
PHP_FE(http_build_url, http_arg_pass_ref_4)
PHP_FE(http_build_str, NULL)
PHP_FE(http_get_request_body_stream, NULL)
PHP_FE(http_match_request_header, NULL)
#ifdef HTTP_HAVE_CURL
+# ifdef HTTP_HAVE_PERSISTENT_HANDLES
+ PHP_FE(http_persistent_handles_count, NULL)
+ PHP_FE(http_persistent_handles_clean, NULL)
+# endif
PHP_FE(http_get, http_arg_pass_ref_3)
PHP_FE(http_head, http_arg_pass_ref_3)
PHP_FE(http_post_data, http_arg_pass_ref_4)
static inline void _http_globals_init(zend_http_globals *G TSRMLS_DC)
{
#ifdef HTTP_HAVE_SAPI_RTIME
- G->request.time = Z_LVAL_P(http_get_server_var("REQUEST_TIME"));
+ G->request.time = sapi_get_request_time(TSRMLS_C);
#else
G->request.time = time(NULL);
#endif
(SUCCESS != PHP_MINIT_CALL(http_send)) ||
(SUCCESS != PHP_MINIT_CALL(http_url)) ||
#ifdef HTTP_HAVE_CURL
+# ifdef HTTP_HAVE_PERSISTENT_HANDLES
+ (SUCCESS != PHP_MINIT_CALL(http_persistent_handle)) ||
+ (SUCCESS != PHP_MINIT_CALL(http_request_pool)) ||
+# endif
(SUCCESS != PHP_MINIT_CALL(http_request)) ||
# ifdef ZEND_ENGINE_2
(SUCCESS != PHP_MINIT_CALL(http_request_datashare)) ||
# ifdef ZEND_ENGINE_2
(SUCCESS != PHP_MSHUTDOWN_CALL(http_request_datashare)) ||
# endif
- (SUCCESS != PHP_MSHUTDOWN_CALL(http_request))) {
+ (SUCCESS != PHP_MSHUTDOWN_CALL(http_request))
+# ifdef HTTP_HAVE_PERSISTENT_HANDLES
+ || (SUCCESS != PHP_MSHUTDOWN_CALL(http_persistent_handle))
+# endif
+ ) {
return FAILURE;
}
#endif
"http.chunked_decode, http.chunked_encode, http.deflate, http.inflate"
#endif
);
+#ifdef HTTP_HAVE_PERSISTENT_HANDLES
+ {
+ phpstr s;
+ HashTable *ht;
+ HashPosition pos;
+ HashKey key = initHashKey(0);
+ zval **val;
+
+ if ((ht = http_persistent_handle_statall())) {
+ phpstr_init(&s);
+
+ FOREACH_HASH_KEYVAL(pos, ht, key, val) {
+ phpstr_appendf(&s, "%s (%ld), ", key.str, Z_LVAL_PP(val));
+ }
+ zend_hash_destroy(ht);
+ FREE_HASHTABLE(ht);
+
+ PHPSTR_LEN(&s) -= 2; /* get rid of last ", " */
+ phpstr_fix(&s);
+
+ php_info_print_table_row(2, "Persistent Handles", PHPSTR_VAL(&s));
+ phpstr_dtor(&s);
+ } else {
+ php_info_print_table_row(2, "Persistent Handles", "none");
+ }
+ }
+#else
+ php_info_print_table_row(2, "Persistent Handles", "disabled");
+#endif
}
php_info_print_table_end();