From 8aeb5058b6457cf9ca8d76026cbb60ca07015570 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 24 Oct 2004 09:20:14 +0000 Subject: Update. * resolv/res_send.c (send_dg): Cope with failures. --- resolv/res_send.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'resolv/res_send.c') diff --git a/resolv/res_send.c b/resolv/res_send.c index 18e54dbcda..8fb21a9446 100644 --- a/resolv/res_send.c +++ b/resolv/res_send.c @@ -906,7 +906,7 @@ send_dg(res_state statp, goto wait; } } - Perror(statp, stderr, "select", errno); + Perror(statp, stderr, "poll", errno); res_nclose(statp); return (0); } @@ -922,9 +922,7 @@ send_dg(res_state statp, pfd[0].events = POLLIN; ++nwritten; goto wait; - } else { - assert(pfd[0].revents & POLLIN); - + } else if (pfd[0].revents & POLLIN) { fromlen = sizeof(struct sockaddr_in6); if (anssiz < MAXPACKET && anscp @@ -1030,6 +1028,10 @@ send_dg(res_state statp, * next nameserver ought not be tried. */ return (resplen); + } else if (pfd[0].revents & (POLLERR | POLLHUP | POLLNVAL)) { + /* Something went wrong. We can stop trying. */ + res_nclose(statp); + return (0); } } -- cgit 1.4.1