Index: ntp.c =================================================================== RCS file: /usr/local/cvs/openntpd-portable/ntp.c,v retrieving revision 1.25 diff -u -p -r1.25 ntp.c --- ntp.c 4 Dec 2004 00:06:34 -0000 1.25 +++ ntp.c 12 Dec 2004 00:55:51 -0000 @@ -228,27 +228,27 @@ ntp_main(int pipe_prnt[2], struct ntpd_c ntp_quit = 1; } - if (nfds > 0 && (pfd[PFD_PIPE_MAIN].revents & POLLOUT)) + if (nfds > 0 && (pfd[PFD_PIPE_MAIN].revents & (POLLOUT|POLLERR))) if (msgbuf_write(&ibuf_main->w) < 0) { log_warn("pipe write error (to parent)"); ntp_quit = 1; } - if (nfds > 0 && pfd[PFD_PIPE_MAIN].revents & POLLIN) { + if (nfds > 0 && pfd[PFD_PIPE_MAIN].revents & (POLLIN|POLLERR)) { nfds--; if (ntp_dispatch_imsg() == -1) ntp_quit = 1; } for (j = 1; nfds > 0 && j < idx_peers; j++) - if (pfd[j].revents & POLLIN) { + if (pfd[j].revents & (POLLIN|POLLERR)) { nfds--; if (server_dispatch(pfd[j].fd, conf) == -1) ntp_quit = 1; } for (; nfds > 0 && j < i; j++) - if (pfd[j].revents & POLLIN) { + if (pfd[j].revents & (POLLIN|POLLERR)) { nfds--; if (client_dispatch(idx2peer[j - idx_peers], conf->settime) == -1)