summaryrefslogtreecommitdiffstats
path: root/lib/libc/resolv/res_send.c
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 /lib/libc/resolv/res_send.c
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
Diffstat (limited to 'lib/libc/resolv/res_send.c')
-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