summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sapi/cli/php_cli.c2
-rw-r--r--win32/select.c8
-rw-r--r--win32/select.h3
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);