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

Reply via email to