X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_functions.c;h=fe19c24376d7b3de49eeed7d6f2d4f619794b4ac;hp=c156c8a3f794ac761cc08821a83e741b7f246fa3;hb=350e41a4710d4c0f45e30e5d59f28f438292ad42;hpb=b3afcfc70bf06c062115f4994cc04fc8c6e4aa67 diff --git a/http_functions.c b/http_functions.c index c156c8a..fe19c24 100644 --- a/http_functions.c +++ b/http_functions.c @@ -34,6 +34,7 @@ #include "php_http_message_api.h" #include "php_http_request_api.h" #include "php_http_request_method_api.h" +#include "php_http_persistent_handle_api.h" #include "php_http_send_api.h" #include "php_http_url_api.h" @@ -55,10 +56,6 @@ PHP_FUNCTION(http_date) } /* }}} */ -#if PHP_MAJOR_VERSION == 4 && PHP_MINOR_VERSION == 3 && PHP_RELEASE_VERSION < 10 -# define php_url_parse_ex(u, l) php_url_parse(u) -#endif - /* {{{ proto string http_build_url([mixed url[, mixed parts[, int flags = HTTP_URL_REPLACE[, array &new_url]]]]) Build an URL. */ PHP_FUNCTION(http_build_url) @@ -807,6 +804,48 @@ PHP_FUNCTION(http_match_request_header) /* {{{ HAVE_CURL */ #ifdef HTTP_HAVE_CURL +#ifdef HTTP_HAVE_PERSISTENT_HANDLES + +/* {{{ proto object http_persistent_handles_count() */ +PHP_FUNCTION(http_persistent_handles_count) +{ + NO_ARGS; + object_init(return_value); + if (!http_persistent_handle_statall_ex(HASH_OF(return_value))) { + zval_dtor(return_value); + RETURN_NULL(); + } +} +/* }}} */ + +/* {{{ proto void http_persistent_handles_clean([string name]) */ +PHP_FUNCTION(http_persistent_handles_clean) +{ + char *name_str = NULL; + int name_len = 0; + + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &name_str, &name_len)) { + http_persistent_handle_cleanup_ex(name_str, name_len, 1); + } +} +/* }}} */ + +/* {{{ proto string http_persistent_handles_ident(string ident) */ +PHP_FUNCTION(http_persistent_handles_ident) +{ + char *ident_str = NULL; + int ident_len = 0; + + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ident_str, &ident_len)) { + RETVAL_STRING(zend_ini_string(ZEND_STRS("http.persistent.handles.ident"), 0), 1); + if (ident_str && ident_len) { + zend_alter_ini_entry(ZEND_STRS("http.persistent.handles.ident"), ident_str, ident_len, ZEND_INI_USER, PHP_INI_STAGE_RUNTIME); + } + } +} +/* }}} */ + +#endif /* HTTP_HAVE_PERSISTENT_HANDLES */ #define RETVAL_RESPONSE_OR_BODY(request) \ { \