# define POLLWRITEFLAGS POLLWRNORM
#endif
-/* Figure out what bits indicate errors */
-#ifdef POLLHUP
-# define POLLERRORS (POLLHUP|POLLERR)
-#else
-# define POLLERRORS POLLERR
-#endif
-
static struct Socket** sockList;
static int devpoll_max;
static int devpoll_fd;
}
}
+ assert(!(polls[i].revents & POLLERR));
+
+#ifdef POLLHUP
+ if (polls[i].revents & POLLHUP) { /* hang-up on socket */
+ Debug((DEBUG_ENGINE, "devpoll: EOF from client (POLLHUP)"));
+ event_generate(ET_EOF, sock, 0);
+ nfds--;
+ continue;
+ }
+#endif /* POLLHUP */
+
switch (s_state(sock)) {
case SS_CONNECTING:
if (polls[i].revents & POLLWRITEFLAGS) { /* connection completed */