From cc336df026db5b613c2416163a5167bfe57fb810 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 13 Feb 2005 08:52:12 +0000 Subject: r5370: epoll gives more precise event bits like EPOLLHUP instead of just EPOLLIN. We need to map these to "read" events for the events code to work on errors like connection refused (thanks to vl for noticing this bug) (This used to be commit 7c379590b4ca808eddef5c3ac15db25cefc5215b) --- source4/lib/events/events.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source4/lib/events/events.c b/source4/lib/events/events.c index 3460627399..9783603759 100644 --- a/source4/lib/events/events.c +++ b/source4/lib/events/events.c @@ -404,7 +404,8 @@ static int event_loop_epoll(struct event_context *ev, struct timeval *tvalp) epoll_fallback_to_select(ev, "epoll_wait() gave bad data"); return -1; } - if (events[i].events & EPOLLIN) flags |= EVENT_FD_READ; + if (events[i].events & (EPOLLIN|EPOLLHUP|EPOLLERR)) + flags |= EVENT_FD_READ; if (events[i].events & EPOLLOUT) flags |= EVENT_FD_WRITE; if (flags) { fde->handler(ev, fde, flags, fde->private); -- cgit