diff options
author | Remi Collet <fedora@famillecollet.com> | 2013-03-14 09:37:15 +0100 |
---|---|---|
committer | Remi Collet <fedora@famillecollet.com> | 2013-03-14 09:37:15 +0100 |
commit | fe316b9316c1412fbea1335dab392c4eeecd29a9 (patch) | |
tree | d3da64dd28cee65c45061cf052afe212cb510485 /php-5.4.11-select.patch | |
parent | 12d20c8598f662859b3248ac2c568f489964ba81 (diff) |
PHP 5.4.13
Diffstat (limited to 'php-5.4.11-select.patch')
-rw-r--r-- | php-5.4.11-select.patch | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/php-5.4.11-select.patch b/php-5.4.11-select.patch deleted file mode 100644 index 3c2a9a3..0000000 --- a/php-5.4.11-select.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 0cea9e6843384c6c0ebb52047c42b0431a4f5660 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Fri, 1 Feb 2013 19:23:25 +0100 -Subject: [PATCH] Fixed bug #64128 buit-in web server is broken on ppc64. - -fdset management using bit operator is broken on non-x86 arch -and cause built-in server the enter an infinite loop of "select" -and never handle any request. ---- - NEWS | 3 +++ - sapi/cli/php_cli_server.c | 30 +++++++++++++----------------- - 2 files changed, 16 insertions(+), 17 deletions(-) - -diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c -index 28aba19..6a4e7c5 100644 ---- a/sapi/cli/php_cli_server.c -+++ b/sapi/cli/php_cli_server.c -@@ -710,10 +710,9 @@ static void php_cli_server_poller_remove(php_cli_server_poller *poller, int mode - if (fd == poller->max_fd) { - while (fd > 0) { - fd--; -- if (((unsigned int *)&poller->rfds)[fd / (8 * sizeof(unsigned int))] || ((unsigned int *)&poller->wfds)[fd / (8 * sizeof(unsigned int))]) { -+ if (PHP_SAFE_FD_ISSET(fd, &poller->rfds) || PHP_SAFE_FD_ISSET(fd, &poller->wfds)) { - break; - } -- fd -= fd % (8 * sizeof(unsigned int)); - } - poller->max_fd = fd; - } -@@ -772,23 +771,20 @@ static int php_cli_server_poller_iter_on_active(php_cli_server_poller *poller, v - } - - #else -- php_socket_t fd = 0; -+ php_socket_t fd; - const php_socket_t max_fd = poller->max_fd; -- const unsigned int *pr = (unsigned int *)&poller->active.rfds, -- *pw = (unsigned int *)&poller->active.wfds, -- *e = pr + (max_fd + (8 * sizeof(unsigned int)) - 1) / (8 * sizeof(unsigned int)); -- unsigned int mask; -- while (pr < e && fd <= max_fd) { -- for (mask = 1; mask; mask <<= 1, fd++) { -- int events = (*pr & mask ? POLLIN: 0) | (*pw & mask ? POLLOUT: 0); -- if (events) { -- if (SUCCESS != callback(opaque, fd, events)) { -- retval = FAILURE; -- } -- } -+ -+ for (fd=0 ; fd<=max_fd ; fd++) { -+ if (PHP_SAFE_FD_ISSET(fd, &poller->active.rfds)) { -+ if (SUCCESS != callback(opaque, fd, POLLIN)) { -+ retval = FAILURE; -+ } -+ } -+ if (PHP_SAFE_FD_ISSET(fd, &poller->active.wfds)) { -+ if (SUCCESS != callback(opaque, fd, POLLOUT)) { -+ retval = FAILURE; -+ } - } -- pr++; -- pw++; - } - #endif - return retval; --- -1.7.11.5 - |