Hi
In the spirit of "commit first, ask questions later once urged by other
parties", I'm informing internals I've dropped the streams pooling API
from trunk. This was never used in PHP in 8 years, neither in any of the
PECL extensions in SVN. A Google search came up with nothing elsewhere
too, so this is most likely just complicating the code unnecessarily.
In any case, if someone *is* using it or otherwise disagrees with this
change, he can raise his objections here (preferably now, and definitely
until the next version of PHP, hopefully next year).
I'll add this information to UPGRADING once the mess it's in is sorted out
(there are parts that refer to 5.4 changes that are not merged in 5.4's
UPGRADING).
------- Forwarded message -------
From: ""Gustavo André dos Santo"s Lopes""" <cataphr...@php.net>
To: php-...@lists.php.net
Cc:
Subject: svn: /php/php-src/trunk/main/streams/ php_stream_context.h
streams.c
Date: Tue, 21 Feb 2012 22:55:00 +0100
cataphract Tue, 21 Feb 2012 21:55:00 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=323416
Log:
- Revert r134029. The streams pooling API was never used in more
than 8 years and therefore unnecessarily adds complexity.
Changed paths:
U php/php-src/trunk/main/streams/php_stream_context.h
U php/php-src/trunk/main/streams/streams.c
Modified: php/php-src/trunk/main/streams/php_stream_context.h
===================================================================
--- php/php-src/trunk/main/streams/php_stream_context.h 2012-02-21
20:57:57 UTC (rev 323415)
+++ php/php-src/trunk/main/streams/php_stream_context.h 2012-02-21
21:55:00 UTC (rev 323416)
@@ -53,7 +53,6 @@
struct _php_stream_context {
php_stream_notifier *notifier;
zval *options; /* hash keyed by wrapper family or specific wrapper */
- zval *links; /* hash keyed by hostent for connection pooling */
int rsrc_id; /* used for auto-cleanup */
};
@@ -65,13 +64,6 @@
PHPAPI int php_stream_context_set_option(php_stream_context *context,
const char *wrappername, const char *optionname, zval
*optionvalue);
-PHPAPI int php_stream_context_get_link(php_stream_context *context,
- const char *hostent, php_stream **stream);
-PHPAPI int php_stream_context_set_link(php_stream_context *context,
- const char *hostent, php_stream *stream);
-PHPAPI int php_stream_context_del_link(php_stream_context *context,
- php_stream *stream);
-
PHPAPI php_stream_notifier *php_stream_notification_alloc(void);
PHPAPI void php_stream_notification_free(php_stream_notifier *notifier);
END_EXTERN_C()
Modified: php/php-src/trunk/main/streams/streams.c
===================================================================
--- php/php-src/trunk/main/streams/streams.c 2012-02-21 20:57:57 UTC (rev
323415)
+++ php/php-src/trunk/main/streams/streams.c 2012-02-21 21:55:00 UTC (rev
323416)
@@ -444,11 +444,6 @@
while (zend_list_delete(stream->rsrc_id) == SUCCESS) {}
}
- /* Remove stream from any context link list */
- if (stream->context && stream->context->links) {
- php_stream_context_del_link(stream->context, stream);
- }
-
if (close_options & PHP_STREAM_FREE_CALL_DTOR) {
if (release_cast && stream->fclose_stdiocast ==
PHP_STREAM_FCLOSE_FOPENCOOKIE) {
/* calling fclose on an fopencookied stream will
ultimately
@@ -2143,10 +2138,6 @@
php_stream_notification_free(context->notifier);
context->notifier = NULL;
}
- if (context->links) {
- zval_ptr_dtor(&context->links);
- context->links = NULL;
- }
efree(context);
}
@@ -2209,66 +2200,6 @@
}
return zend_hash_update(Z_ARRVAL_PP(wrapperhash), (char*)optionname,
strlen(optionname)+1, (void**)&copied_val, sizeof(zval *), NULL);
}
-
-PHPAPI int php_stream_context_get_link(php_stream_context *context,
- const char *hostent, php_stream **stream)
-{
- php_stream **pstream;
-
- if (!stream || !hostent || !context || !(context->links)) {
- return FAILURE;
- }
- if (SUCCESS == zend_hash_find(Z_ARRVAL_P(context->links),
(char*)hostent, strlen(hostent)+1, (void**)&pstream)) {
- *stream = *pstream;
- return SUCCESS;
- }
- return FAILURE;
-}
-
-PHPAPI int php_stream_context_set_link(php_stream_context *context,
- const char *hostent, php_stream *stream)
-{
- if (!context) {
- return FAILURE;
- }
- if (!context->links) {
- ALLOC_INIT_ZVAL(context->links);
- array_init(context->links);
- }
- if (!stream) {
- /* Delete any entry for <hostent> */
- return zend_hash_del(Z_ARRVAL_P(context->links), (char*)hostent,
strlen(hostent)+1);
- }
- return zend_hash_update(Z_ARRVAL_P(context->links), (char*)hostent,
strlen(hostent)+1, (void**)&stream, sizeof(php_stream *), NULL);
-}
-
-PHPAPI int php_stream_context_del_link(php_stream_context *context,
- php_stream *stream)
-{
- php_stream **pstream;
- char *hostent;
- int ret = SUCCESS;
-
- if (!context || !context->links || !stream) {
- return FAILURE;
- }
-
- for(zend_hash_internal_pointer_reset(Z_ARRVAL_P(context->links));
- SUCCESS ==
zend_hash_get_current_data(Z_ARRVAL_P(context->links),
(void**)&pstream);
- zend_hash_move_forward(Z_ARRVAL_P(context->links))) {
- if (*pstream == stream) {
- if (SUCCESS ==
zend_hash_get_current_key(Z_ARRVAL_P(context->links),
&hostent, NULL, 0)) {
- if (FAILURE ==
zend_hash_del(Z_ARRVAL_P(context->links),
(char*)hostent, strlen(hostent)+1)) {
- ret = FAILURE;
- }
- } else {
- ret = FAILURE;
- }
- }
- }
-
- return ret;
-}
/* }}} */
/* {{{ php_stream_dirent_alphasort
--
Gustavo Lopes
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php