From b2d4514580f1a89cae9cb6c8f6a575ed8eec1fed Mon Sep 17 00:00:00 2001 From: Sara Golemon Date: Fri, 4 Apr 2003 05:21:03 +0000 Subject: [PATCH] Added stream_get_transports() --- ext/standard/basic_functions.c | 1 + ext/standard/streamsfuncs.c | 27 +++++++++++++++++++++++++++ ext/standard/streamsfuncs.h | 1 + 3 files changed, 29 insertions(+) diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 9ae0e20a85..80894af634 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -701,6 +701,7 @@ function_entry basic_functions[] = { PHP_FE(stream_get_line, NULL) PHP_FE(stream_register_wrapper, NULL) PHP_FE(stream_get_wrappers, NULL) + PHP_FE(stream_get_transports, NULL) PHP_FE(get_headers, NULL) #if HAVE_SYS_TIME_H || defined(PHP_WIN32) diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index eaae8a25c4..814cafd2bf 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -337,6 +337,33 @@ PHP_FUNCTION(stream_get_meta_data) } /* }}} */ +/* {{{ proto array stream_get_transports() + Retrieves list of registered socket transports */ +PHP_FUNCTION(stream_get_transports) +{ + HashTable *stream_xport_hash; + char *stream_xport; + int key_flags, stream_xport_len; + + if (ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } + + if (stream_xport_hash = php_stream_xport_get_hash()) { + array_init(return_value); + for(zend_hash_internal_pointer_reset(stream_xport_hash); + (key_flags = zend_hash_get_current_key_ex(stream_xport_hash, &stream_xport, &stream_xport_len, NULL, 0, NULL)) != HASH_KEY_NON_EXISTANT; + zend_hash_move_forward(stream_xport_hash)) { + if (key_flags == HASH_KEY_IS_STRING) { + add_next_index_stringl(return_value, stream_xport, stream_xport_len, 1); + } + } + } else { + RETURN_FALSE; + } +} +/* }}} */ + /* {{{ proto array stream_get_wrappers() Retrieves list of registered stream wrappers */ PHP_FUNCTION(stream_get_wrappers) diff --git a/ext/standard/streamsfuncs.h b/ext/standard/streamsfuncs.h index 9da5f1f5af..95c1271d97 100644 --- a/ext/standard/streamsfuncs.h +++ b/ext/standard/streamsfuncs.h @@ -34,6 +34,7 @@ PHP_FUNCTION(stream_set_blocking); PHP_FUNCTION(stream_select); PHP_FUNCTION(stream_set_timeout); PHP_FUNCTION(stream_set_write_buffer); +PHP_FUNCTION(stream_get_transports); PHP_FUNCTION(stream_get_wrappers); PHP_FUNCTION(stream_get_line); PHP_FUNCTION(stream_get_meta_data); -- 2.50.1