mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 22:57:45 +00:00
lib: correctly handle EOF when using poll()
Descriptor owner should handle EOF, not thread.c Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
parent
b9796a6e01
commit
dbb3cdb601
@ -1052,14 +1052,13 @@ check_pollfds(struct thread_master *m, fd_set *readfd, int num)
|
||||
ready++;
|
||||
|
||||
/* POLLIN / POLLOUT process event */
|
||||
if (m->handler.pfds[i].revents & POLLIN)
|
||||
if (m->handler.pfds[i].revents & (POLLIN | POLLHUP))
|
||||
thread_process_fds_helper(m, m->read[m->handler.pfds[i].fd], NULL, POLLIN, i);
|
||||
if (m->handler.pfds[i].revents & POLLOUT)
|
||||
thread_process_fds_helper(m, m->write[m->handler.pfds[i].fd], NULL, POLLOUT, i);
|
||||
|
||||
/* remove fd from list on POLLNVAL */
|
||||
if (m->handler.pfds[i].revents & POLLNVAL ||
|
||||
m->handler.pfds[i].revents & POLLHUP)
|
||||
if (m->handler.pfds[i].revents & POLLNVAL)
|
||||
{
|
||||
memmove(m->handler.pfds+i,
|
||||
m->handler.pfds+i+1,
|
||||
|
Loading…
Reference in New Issue
Block a user