3009. [bug] clients-per-query code didn't work as expected with
particular query patterns. [RT #22972]
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -1,3 +1,5 @@
|
||||
3009. [bug] clients-per-query code didn't work as expected with
|
||||
particular query patterns. [RT #22972]
|
||||
|
||||
--- 9.6.3rc1 released ---
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: resolver.c,v 1.384.14.28 2010/06/23 23:46:05 tbox Exp $ */
|
||||
/* $Id: resolver.c,v 1.384.14.29 2011/01/27 02:29:47 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -7443,6 +7443,13 @@ static inline isc_boolean_t
|
||||
fctx_match(fetchctx_t *fctx, dns_name_t *name, dns_rdatatype_t type,
|
||||
unsigned int options)
|
||||
{
|
||||
/*
|
||||
* Don't match fetch contexts that are shutting down.
|
||||
*/
|
||||
if (fctx->cloned || fctx->state == fetchstate_done ||
|
||||
ISC_LIST_EMPTY(fctx->events))
|
||||
return (ISC_FALSE);
|
||||
|
||||
if (fctx->type != type || fctx->options != options)
|
||||
return (ISC_FALSE);
|
||||
return (dns_name_equal(&fctx->name, name));
|
||||
@@ -7577,17 +7584,7 @@ dns_resolver_createfetch2(dns_resolver_t *res, dns_name_t *name,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If we didn't have a fetch, would attach to a done fetch, this
|
||||
* fetch has already cloned its results, or if the fetch has gone
|
||||
* "idle" (no one was interested in it), we need to start a new
|
||||
* fetch instead of joining with the existing one.
|
||||
*/
|
||||
if (fctx == NULL ||
|
||||
fctx->state == fetchstate_done ||
|
||||
fctx->cloned ||
|
||||
ISC_LIST_EMPTY(fctx->events)) {
|
||||
fctx = NULL;
|
||||
if (fctx == NULL) {
|
||||
result = fctx_create(res, name, type, domain, nameservers,
|
||||
options, bucketnum, &fctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
|
||||
Reference in New Issue
Block a user