summaryrefslogtreecommitdiff
path: root/src/fdevent_linux_sysepoll.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2019-03-16 17:38:40 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2019-03-16 17:38:40 -0400
commitb135b4d24d53ac812ccda054fc75e4ef79b9a88b (patch)
tree624386b82ec57f02ccb28f1c69b134c94200b5e0 /src/fdevent_linux_sysepoll.c
parentf2ac4cdfc5e8a37fc742dcd10c6608ac21281ba8 (diff)
downloadlighttpd-git-b135b4d24d53ac812ccda054fc75e4ef79b9a88b.tar.gz
[core] clear FDEVENT_RDHUP if no POLLRDHUP
(fix for poll() on FreeBSD 11)
Diffstat (limited to 'src/fdevent_linux_sysepoll.c')
-rw-r--r--src/fdevent_linux_sysepoll.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/fdevent_linux_sysepoll.c b/src/fdevent_linux_sysepoll.c
index 66c2a04e..650e455d 100644
--- a/src/fdevent_linux_sysepoll.c
+++ b/src/fdevent_linux_sysepoll.c
@@ -26,6 +26,9 @@ static int fdevent_linux_sysepoll_event_set(fdevents *ev, fdnode *fdn, int event
int op = (-1 == fdn->fde_ndx) ? EPOLL_CTL_ADD : EPOLL_CTL_MOD;
int fd = fdn->fde_ndx = fdn->fd;
struct epoll_event ep;
+ #ifndef EPOLLRDHUP
+ events &= ~FDEVENT_RDHUP;
+ #endif
ep.events = events | EPOLLERR | EPOLLHUP;
ep.data.ptr = fdn;
return epoll_ctl(ev->epoll_fd, op, fd, &ep);