summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes5
-rw-r--r--ev.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/Changes b/Changes
index 6b99d33..cc4c5ac 100644
--- a/Changes
+++ b/Changes
@@ -2,6 +2,11 @@ Revision history for libev, a high-performance and full-featured event loop.
- define NFSBITS to 0 when EV_SELECT_IS_WINSOCKET to make it compile
(reported any analysed by Chris Hulbert).
+ - fix a bug in ev_ebadf (this function is only used to catch
+ programming errors in the libev user). reported by Matt Tolton.
+ - fix a bug in fd_intern on win32 (could lead to compile errors
+ under some circumstances, but would work correctly if it compiles).
+ reported by Matt Tolton.
- pass in the write fd set as except fd set under windows. windows
is so uncontrollably lame that it requires this. this means that
switching off oobinline is not supported (but tcp/ip doesn't
diff --git a/ev.c b/ev.c
index e75e545..18dd2f5 100644
--- a/ev.c
+++ b/ev.c
@@ -709,13 +709,13 @@ fd_reify (EV_P)
#if EV_SELECT_IS_WINSOCKET
if (events)
{
- unsigned long argp;
+ unsigned long arg;
#ifdef EV_FD_TO_WIN32_HANDLE
anfd->handle = EV_FD_TO_WIN32_HANDLE (fd);
#else
anfd->handle = _get_osfhandle (fd);
#endif
- assert (("libev only supports socket fds in this configuration", ioctlsocket (anfd->handle, FIONREAD, &argp) == 0));
+ assert (("libev only supports socket fds in this configuration", ioctlsocket (anfd->handle, FIONREAD, &arg) == 0));
}
#endif
@@ -778,7 +778,7 @@ fd_ebadf (EV_P)
for (fd = 0; fd < anfdmax; ++fd)
if (anfds [fd].events)
- if (!fd_valid (fd) == -1 && errno == EBADF)
+ if (!fd_valid (fd) && errno == EBADF)
fd_kill (EV_A_ fd);
}
@@ -985,7 +985,7 @@ void inline_speed
fd_intern (int fd)
{
#ifdef _WIN32
- int arg = 1;
+ unsigned long arg = 1;
ioctlsocket (_get_osfhandle (fd), FIONBIO, &arg);
#else
fcntl (fd, F_SETFD, FD_CLOEXEC);