summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2006-08-04 12:26:07 +0000
committerume <ume@FreeBSD.org>2006-08-04 12:26:07 +0000
commitf44836f7cb50445105e52da73e6dd444381905ad (patch)
treee16ef8cbfcffede2740dbc0dcd14f15b7569ebbd
parent0b94127d30eafcdec37379cec51e454aeb6062c5 (diff)
downloadFreeBSD-src-f44836f7cb50445105e52da73e6dd444381905ad.zip
FreeBSD-src-f44836f7cb50445105e52da73e6dd444381905ad.tar.gz
Check if the filedes of kevent is expected one. Though our
old resolver opened just one socket, BIND9's resolver may open more than one sockets. And, BIND9's resolver doesn't close the socket on timeout. So, we need this check. Reported by: freebsd-cvs-src__at__oldach.net (Helge Oldach), bz Hinted by: rwatson
-rw-r--r--lib/libc/resolv/res_send.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libc/resolv/res_send.c b/lib/libc/resolv/res_send.c
index f31abf1..e0c97d6 100644
--- a/lib/libc/resolv/res_send.c
+++ b/lib/libc/resolv/res_send.c
@@ -970,6 +970,10 @@ send_dg(res_state statp,
res_nclose(statp);
return (0);
}
+#ifdef USE_KQUEUE
+ if (kv.ident != s)
+ goto wait;
+#endif
errno = 0;
fromlen = sizeof(from);
resplen = _recvfrom(s, (char*)ans, anssiz,0,
OpenPOWER on IntegriCloud