From d23b1aa83f4e9bc63c227bee0d7a306ecf22b731 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Sat, 22 Jul 2006 01:09:38 +0000 Subject: [PATCH] 2057. [bug] Make setting "ra" dependent on both allow-query and allow-recursion. [RT #16290] --- CHANGES | 3 +++ bin/named/client.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 84bc61f0136..1659207b7f8 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2057. [bug] Make setting "ra" dependent on both allow-query and + allow-recursion. [RT #16290] + 2056. [bug] dig: ixfr= was not being treated case insensitively at all times. [RT #15955] diff --git a/bin/named/client.c b/bin/named/client.c index 807e78a6f01..b0ce793b98e 100644 --- a/bin/named/client.c +++ b/bin/named/client.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: client.c,v 1.176.2.13.4.30 2006/07/21 23:41:41 marka Exp $ */ +/* $Id: client.c,v 1.176.2.13.4.31 2006/07/22 01:09:38 marka Exp $ */ #include @@ -1609,12 +1609,15 @@ client_request(isc_task_t *task, isc_event_t *event) { * Decide whether recursive service is available to this client. * We do this here rather than in the query code so that we can * set the RA bit correctly on all kinds of responses, not just - * responses to ordinary queries. + * responses to ordinary queries. Note if you can't query the + * cache there is no point in setting RA. */ ra = ISC_FALSE; if (client->view->resolver != NULL && client->view->recursion == ISC_TRUE && ns_client_checkaclsilent(client, client->view->recursionacl, + ISC_TRUE) == ISC_R_SUCCESS && + ns_client_checkaclsilent(client, client->view->queryacl, ISC_TRUE) == ISC_R_SUCCESS) ra = ISC_TRUE; -- 2.47.3