From: rousskov <> Date: Tue, 10 Apr 2007 23:42:43 +0000 (+0000) Subject: - Bug #1356: Close open DNS sockets when doing idnsShutdown. Leaving them X-Git-Tag: SQUID_3_0_PRE6~120 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b26754c4f43982abf3259ce2edab91128add0119;p=thirdparty%2Fsquid.git - Bug #1356: Close open DNS sockets when doing idnsShutdown. Leaving them open may result in an idnsVCClosed callback being called when the name servers array have been freed by idnsFreeNameservers. (based on Christos Tsantilas and Guido Serassio work) --- diff --git a/src/dns_internal.cc b/src/dns_internal.cc index 2b0f43cd4b..e7d88238eb 100644 --- a/src/dns_internal.cc +++ b/src/dns_internal.cc @@ -1,6 +1,6 @@ /* - * $Id: dns_internal.cc,v 1.94 2006/09/19 07:56:57 adrian Exp $ + * $Id: dns_internal.cc,v 1.95 2007/04/10 17:42:43 rousskov Exp $ * * DEBUG: section 78 DNS lookups; interacts with lib/rfc1035.c * AUTHOR: Duane Wessels @@ -1271,6 +1271,13 @@ idnsShutdown(void) DnsSocket = -1; + for (int i = 0; i < nns; i++) { + if (nsvc *vc = nameservers[i].vc) { + if (vc->fd >= 0) + comm_close(vc->fd); + } + } + idnsFreeNameservers(); idnsFreeSearchpath();