X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_functions.c;h=2c849c1215c7e1a2d9ea1b35432bed108960a6c9;hp=c4e358d2fe2939501fcde5c8fad0b3cf4b3898ff;hb=fa184d3b9f22921108a64c8062f07e3b8bb01e72;hpb=fa6e9a361695e1c273266c79d0d27ff19059bb8a diff --git a/http_functions.c b/http_functions.c index c4e358d..2c849c1 100644 --- a/http_functions.c +++ b/http_functions.c @@ -6,7 +6,7 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2006, Michael Wallner | + | Copyright (c) 2004-2007, Michael Wallner | +--------------------------------------------------------------------+ */ @@ -56,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) @@ -233,7 +229,7 @@ PHP_FUNCTION(http_negotiate_charset) } /* }}} */ -/* {{{ proto string http_negotiate_ctype(array supported[, array &result]) +/* {{{ proto string http_negotiate_content_type(array supported[, array &result]) Negotiate the clients preferred content type. */ PHP_FUNCTION(http_negotiate_content_type) { @@ -806,27 +802,14 @@ 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) { - char **names; - int *counts; - int i, n; - NO_ARGS; - - if ((n = http_persistent_handle_statall(&names, &counts))) { - object_init(return_value); - for (i = 0; i < n; ++i) { - add_property_long(return_value, names[i], counts[i]); - efree(names[i]); - } - efree(names); - efree(counts); + object_init(return_value); + if (!http_persistent_handle_statall_ex(HASH_OF(return_value))) { + zval_dtor(return_value); + RETURN_NULL(); } } /* }}} */ @@ -838,12 +821,28 @@ PHP_FUNCTION(http_persistent_handles_clean) 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); + 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 */ +/* {{{ HAVE_CURL */ +#ifdef HTTP_HAVE_CURL #define RETVAL_RESPONSE_OR_BODY(request) \ { \