mike Thu, 11 Mar 2010 16:37:24 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=296079
Log: add backlock socket context option for stream_socket_server(), which had a hardcoded backlog of 5 at two occurrances Changed paths: U php/php-src/branches/PHP_5_3/main/streams/transports.c U php/php-src/branches/PHP_5_3/main/streams/xp_socket.c U php/php-src/trunk/main/streams/transports.c U php/php-src/trunk/main/streams/xp_socket.c Modified: php/php-src/branches/PHP_5_3/main/streams/transports.c =================================================================== --- php/php-src/branches/PHP_5_3/main/streams/transports.c 2010-03-11 16:19:43 UTC (rev 296078) +++ php/php-src/branches/PHP_5_3/main/streams/transports.c 2010-03-11 16:37:24 UTC (rev 296079) @@ -157,7 +157,20 @@ ERR_RETURN(error_string, error_text, "bind() failed: %s"); failed = 1; } else if (flags & STREAM_XPORT_LISTEN) { - if (0 != php_stream_xport_listen(stream, 5, &error_text TSRMLS_CC)) { + zval **zbacklog = NULL; + int backlog = 32; + + if (stream->context && php_stream_context_get_option(stream->context, "socket", "backlog", &zbacklog) == SUCCESS) { + zval *ztmp = *zbacklog; + + convert_to_long_ex(&ztmp); + backlog = Z_LVAL_P(ztmp); + if (ztmp != *zbacklog) { + zval_ptr_dtor(&ztmp); + } + } + + if (0 != php_stream_xport_listen(stream, backlog, &error_text TSRMLS_CC)) { ERR_RETURN(error_string, error_text, "listen() failed: %s"); failed = 1; } Modified: php/php-src/branches/PHP_5_3/main/streams/xp_socket.c =================================================================== --- php/php-src/branches/PHP_5_3/main/streams/xp_socket.c 2010-03-11 16:19:43 UTC (rev 296078) +++ php/php-src/branches/PHP_5_3/main/streams/xp_socket.c 2010-03-11 16:37:24 UTC (rev 296079) @@ -324,7 +324,7 @@ switch (xparam->op) { case STREAM_XPORT_OP_LISTEN: - xparam->outputs.returncode = (listen(sock->socket, 5) == 0) ? 0: -1; + xparam->outputs.returncode = (listen(sock->socket, xparam->inputs.backlog) == 0) ? 0: -1; return PHP_STREAM_OPTION_RETURN_OK; case STREAM_XPORT_OP_GET_NAME: Modified: php/php-src/trunk/main/streams/transports.c =================================================================== --- php/php-src/trunk/main/streams/transports.c 2010-03-11 16:19:43 UTC (rev 296078) +++ php/php-src/trunk/main/streams/transports.c 2010-03-11 16:37:24 UTC (rev 296079) @@ -157,7 +157,20 @@ ERR_RETURN(error_string, error_text, "bind() failed: %s"); failed = 1; } else if (flags & STREAM_XPORT_LISTEN) { - if (0 != php_stream_xport_listen(stream, 5, &error_text TSRMLS_CC)) { + zval **zbacklog = NULL; + int backlog = 32; + + if (stream->context && php_stream_context_get_option(stream->context, "socket", "backlog", &zbacklog) == SUCCESS) { + zval *ztmp = *zbacklog; + + convert_to_long_ex(&ztmp); + backlog = Z_LVAL_P(ztmp); + if (ztmp != *zbacklog) { + zval_ptr_dtor(&ztmp); + } + } + + if (0 != php_stream_xport_listen(stream, backlog, &error_text TSRMLS_CC)) { ERR_RETURN(error_string, error_text, "listen() failed: %s"); failed = 1; } Modified: php/php-src/trunk/main/streams/xp_socket.c =================================================================== --- php/php-src/trunk/main/streams/xp_socket.c 2010-03-11 16:19:43 UTC (rev 296078) +++ php/php-src/trunk/main/streams/xp_socket.c 2010-03-11 16:37:24 UTC (rev 296079) @@ -324,7 +324,7 @@ switch (xparam->op) { case STREAM_XPORT_OP_LISTEN: - xparam->outputs.returncode = (listen(sock->socket, 5) == 0) ? 0: -1; + xparam->outputs.returncode = (listen(sock->socket, xparam->inputs.backlog) == 0) ? 0: -1; return PHP_STREAM_OPTION_RETURN_OK; case STREAM_XPORT_OP_GET_NAME:
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php