From: Mark Andrews Date: Tue, 16 May 2006 03:10:23 +0000 (+0000) Subject: 2016. [bug] Return a partial answer if recursion is not X-Git-Tag: v9.4.0b1~36^2~83 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=82ecc9cd96239649dfeb0a16e31c3b978d0d266a;p=thirdparty%2Fbind9.git 2016. [bug] Return a partial answer if recursion is not allowed but requested and we had the answer to the original qname. [RT #15945] --- diff --git a/CHANGES b/CHANGES index f150696946d..499a754055c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +2016. [bug] Return a partial answer if recursion is not + allowed but requested and we had the answer + to the original qname. [RT #15945] + 2015. [cleanup] use-additional-cache is now acache-enable for consistancy. Default acache-enable off in BIND 9.4 as it requires memory usage to be configured. @@ -156,7 +160,7 @@ Jason Vas Dias . 1971. [port] linux: make detection of missing IF_NAMESIZE more - robust. [RT #15443] + robust. [RT #15443] 1970. [bug] nsupdate: adjust UDP timeout when falling back to unsigned SOA query. [RT #15775] @@ -739,14 +743,14 @@ 1779. [port] OSF 5.1: libtool didn't handle -pthread correctly. -1778. [port] HUX 11.11: fix broken IN6ADDR_ANY_INIT and +1778. [port] HUX 11.11: fix broken IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT macros. -1777. [port] OSF 5.1: fix broken IN6ADDR_ANY_INIT and +1777. [port] OSF 5.1: fix broken IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT macros. -1776. [port] Solaris 2.9: fix broken IN6ADDR_ANY_INIT and - IN6ADDR_LOOPBACK_INIT macros. +1776. [port] Solaris 2.9: fix broken IN6ADDR_ANY_INIT and + IN6ADDR_LOOPBACK_INIT macros. 1775. [bug] Only compile getnetent_r.c when threaded. [RT #13205] diff --git a/bin/named/query.c b/bin/named/query.c index 4744655834b..b3afcb0396a 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: query.c,v 1.284 2006/03/09 23:39:00 marka Exp $ */ +/* $Id: query.c,v 1.285 2006/05/16 03:10:23 marka Exp $ */ /*! \file */ @@ -3486,9 +3486,10 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) } } if (result != ISC_R_SUCCESS) { - if (result == DNS_R_REFUSED) - QUERY_ERROR(DNS_R_REFUSED); - else + if (result == DNS_R_REFUSED) { + if (!PARTIALANSWER(client)) + QUERY_ERROR(DNS_R_REFUSED); + } else QUERY_ERROR(DNS_R_SERVFAIL); goto cleanup; }