aboutsummaryrefslogtreecommitdiff
path: root/lib/hostares.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/hostares.c')
-rw-r--r--lib/hostares.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/hostares.c b/lib/hostares.c
index 1412f13a6..efecd86bd 100644
--- a/lib/hostares.c
+++ b/lib/hostares.c
@@ -169,10 +169,14 @@ static int ares_waitperform(struct connectdata *conn, int timeout_ms)
else {
/* move through the descriptors and ask for processing on them */
for(i=0; i < num; i++)
+ /*
+ * Following the advice from:
+ * http://lists.danga.com/pipermail/memcached/2003-October/000336.html
+ */
ares_process_fd(data->state.areschannel,
- pfd[i].revents & (POLLRDNORM|POLLIN)?
+ pfd[i].revents & (POLLRDNORM|POLLIN|POLLERR|POLLHUP)?
pfd[i].fd:ARES_SOCKET_BAD,
- pfd[i].revents & (POLLWRNORM|POLLOUT)?
+ pfd[i].revents & (POLLWRNORM|POLLOUT|POLLERR)?
pfd[i].fd:ARES_SOCKET_BAD);
}
return nfds;