From: wessels <> Date: Thu, 5 Dec 1996 00:50:34 +0000 (+0000) Subject: - Fixed dnsGetFirstAvailable() to skip dead dnsservers. X-Git-Tag: SQUID_3_0_PRE1~5345 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a9e8f3f7ac020963cdaf271d1429f8ca15e9ddd6;p=thirdparty%2Fsquid.git - Fixed dnsGetFirstAvailable() to skip dead dnsservers. --- diff --git a/src/dns.cc b/src/dns.cc index 632064287c..81e0bdd950 100644 --- a/src/dns.cc +++ b/src/dns.cc @@ -1,5 +1,5 @@ /* - * $Id: dns.cc,v 1.26 1996/12/04 16:28:34 wessels Exp $ + * $Id: dns.cc,v 1.27 1996/12/04 17:50:34 wessels Exp $ * * DEBUG: section 34 Dnsserver interface * AUTHOR: Harvest Derived @@ -212,8 +212,11 @@ dnsGetFirstAvailable(void) dnsserver_t *dns = NULL; for (k = 0; k < NDnsServersAlloc; k++) { dns = *(dns_child_table + k); - if (!(dns->flags & DNS_FLAG_BUSY)) - return dns; + if (BIT_TEST(dns->flags, DNS_FLAG_BUSY)) + continue; + if (!BIT_TEST(dns->flags, DNS_FLAG_ALIVE)) + continue; + return dns; } return NULL; } @@ -250,6 +253,9 @@ dnsOpenServers(void) if ((dnssocket = dnsOpenServer(prg)) < 0) { debug(34, 1, "dnsOpenServers: WARNING: Failed to start 'dnsserver' #%d.\n", k+1); dns_child_table[k]->flags &= ~DNS_FLAG_ALIVE; + dns_child_table[k]->id = k + 1; + dns_child_table[k]->inpipe = -1; + dns_child_table[k]->outpipe = -1; } else { debug(34, 4, "dnsOpenServers: FD %d connected to %s #%d.\n", dnssocket, prg, k + 1);