rendered paste bodydiff --git a/libevent/configure.in b/libevent/configure.inindex bc3eca1..620fd41 100644--- a/libevent/configure.in+++ b/libevent/configure.in@@ -309,6 +309,14 @@ AC_CHECK_TYPES([uint64_t, uint32_t, uint16_t, uint8_t], , , #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif])+AC_CHECK_TYPES([fd_mask], , ,+[#ifdef HAVE_SYS_TYPES_H+#include <sys/types.h>+#endif+#ifdef HAVE_SELECT_H+#include <select.h>+#endif])+ AC_CHECK_SIZEOF(long long) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(short)diff --git a/libevent/select.c b/libevent/select.cindex ca6639f..53f6abe 100644--- a/libevent/select.c+++ b/libevent/select.c@@ -51,6 +51,7 @@ #endif #include "event.h"+#include "evutil.h" #include "event-internal.h" #include "evsignal.h" #include "log.h"@@ -59,6 +60,26 @@ #define howmany(x, y) (((x)+((y)-1))/(y)) #endif +#ifndef _EVENT_HAVE_FD_MASK+#ifdef NFDBITS+#if NFDBITS == 8+typedef ev_uint8_t fd_mask;+#elif NFDBITS == 16+typedef ev_uint16_t fd_mask;+#elif NFDBITS == 32+typedef ev_uint32_t fd_mask;+#elif NFDBITS == 64+typedef ev_uint64_t fd_mask;+#else+#error "NFDBITS is set to something very strange"+#endif+#else+/* No NFDBITS */+typedef unsigned int fd_mask;+#define NFDBITS ((sizeof unsigned)*8)+#endif+#endif+ struct selectop { int event_fds; /* Highest fd in fd set */ int event_fdsz;