diff --git a/CHANGES b/CHANGES index 841fe3c13f..fca251a94a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4528. [bug] Only set the flag bits for the i/o we are waiting + for on EPOLLERR or EPOLLHUP. [RT #43617] + 4527. [doc] Support DocBook XSL Stylesheets v1.79.1. [RT #43831] 4526. [doc] Corrected errors and improved formatting of diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index 15900dc0bf..f24e280779 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -3774,7 +3774,8 @@ process_fds(isc__socketmgr_t *manager, struct epoll_event *events, int nevents) * events. Note also that the read or write attempt * won't block because we use non-blocking sockets. */ - events[i].events |= (EPOLLIN | EPOLLOUT); + int fd = events[i].data.fd; + events[i].events |= manager->epoll_events[fd]; } process_fd(manager, events[i].data.fd, (events[i].events & EPOLLIN) != 0,