diff options
-rw-r--r-- | sapi/cli/php_cli.c | 2 | ||||
-rw-r--r-- | win32/select.c | 8 | ||||
-rw-r--r-- | win32/select.h | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c index 0ff8b4103f..07e8a8c803 100644 --- a/sapi/cli/php_cli.c +++ b/sapi/cli/php_cli.c @@ -248,7 +248,7 @@ static void print_extensions(void) /* {{{ */ #define STDERR_FILENO 2 #endif -static inline int sapi_cli_select(int fd) +static inline int sapi_cli_select(php_socket_t fd) { fd_set wfd, dfd; struct timeval tv; diff --git a/win32/select.c b/win32/select.c index 7060ebf414..c59e4ba45d 100644 --- a/win32/select.c +++ b/win32/select.c @@ -34,7 +34,7 @@ * - Calling this with NULL sets as a portable way to sleep with sub-second * accuracy is not supported. * */ -PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *tv) +PHPAPI int php_select(php_socket_t max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *tv) { ULONGLONG ms_total, limit; HANDLE handles[MAXIMUM_WAIT_OBJECTS]; @@ -61,7 +61,7 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru FD_ZERO(&sock_except); /* build an array of handles for non-sockets */ - for (i = 0; i < max_fd; i++) { + for (i = 0; i < INT_MAX && i < max_fd; i++) { if (SAFE_FD_ISSET(i, rfds) || SAFE_FD_ISSET(i, wfds) || SAFE_FD_ISSET(i, efds)) { handles[n_handles] = (HANDLE)(zend_uintptr_t)_get_osfhandle(i); if (handles[n_handles] == INVALID_HANDLE_VALUE) { @@ -87,7 +87,7 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru if (n_handles == 0) { /* plain sockets only - let winsock handle the whole thing */ - return select(max_fd, rfds, wfds, efds, tv); + return select(0, rfds, wfds, efds, tv); } /* mixture of handles and sockets; lets multiplex between @@ -111,7 +111,7 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru tvslice.tv_sec = 0; tvslice.tv_usec = 100000; - retcode = select(sock_max_fd+1, &aread, &awrite, &aexcept, &tvslice); + retcode = select(0, &aread, &awrite, &aexcept, &tvslice); } if (n_handles > 0) { /* check handles */ diff --git a/win32/select.h b/win32/select.h index 6f2d12e84d..ef91684363 100644 --- a/win32/select.h +++ b/win32/select.h @@ -18,5 +18,6 @@ /* $Id$ */ -PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *tv); +#include "php_network.h" +PHPAPI int php_select(php_socket_t max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *tv); |