svn: /php/php-src/ branches/PHP_5_3/main/streams/transports.c branches/PHP_5_3/main/streams/xp_socket.c trunk/main/streams/transports.c
trunk/main/streams/xp_socket.c
| From: | Michael Wallner | Date: | Thu, 11 Mar 2010 16:37:24 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/main/streams/transports.c branches/PHP_5_3/main/streams/xp_socket.c trunk/main/streams/transports.c trunk/main/streams/xp_socket.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-62017@lists.php.net to get a copy of this message | ||
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: