From f44836f7cb50445105e52da73e6dd444381905ad Mon Sep 17 00:00:00 2001 From: ume Date: Fri, 4 Aug 2006 12:26:07 +0000 Subject: 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 --- lib/libc/resolv/res_send.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/libc/resolv/res_send.c') 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, -- cgit v1.1