unless they are required, but it may still add
records to the additional section. When set to
<userinput>no-auth-recursive</userinput>, this
- is only done if the query is recursive. These
+ is only done if the query is recursive. When the
+ query is not recursive, the effect is same as if
+ <userinput>no</userinput> was specified. These
settings are useful when answering stub clients,
which usually ignore the authority section.
<userinput>no-auth-recursive</userinput> is
both authoritative and recursive queries.
</para>
<para>
- The default is <userinput>yes</userinput>.
+ The default is
+ <userinput>no-auth-recursive</userinput>.
</para>
</listitem>
</varlistentry>
at the cost of increased memory usage for the zone. If
you don't want this, set it to <userinput>no</userinput>.
</para>
- <para>
- The glue cache is only used when
- <userinput>minimal-responses</userinput> is also set
- to <userinput>yes</userinput>.
- </para>
</listitem>
</varlistentry>
return (eresult);
}
-static inline void
-query_addrdataset(ns_client_t *client, dns_name_t *fname,
- dns_rdataset_t *rdataset)
+static void
+query_addrdataset(ns_client_t *client, dns_section_t section,
+ dns_name_t *fname, dns_rdataset_t *rdataset)
{
+ UNUSED(section);
+
/*
* Add 'rdataset' and any pertinent additional data to
* 'fname', a name in the response message for 'client'.
* Try to process glue directly.
*/
if (client->view->use_glue_cache &&
- (client->view->minimalresponses == dns_minimal_yes) &&
(rdataset->type == dns_rdatatype_ns) &&
(client->query.gluedb != NULL) &&
dns_db_iszone(client->query.gluedb))
* we do not need to check if the SIG rdataset is already in the
* response.
*/
- query_addrdataset(client, mname, rdataset);
+ query_addrdataset(client, section, mname, rdataset);
*rdatasetp = NULL;
if (sigrdataset != NULL && dns_rdataset_isassociated(sigrdataset)) {
/*
isc_netaddr_t netaddr;
dns_dns64_t *dns64;
unsigned int flags = 0;
+ const dns_section_t section = DNS_SECTION_ANSWER;
/*%
* To the current response for 'qctx->client', add the answer RRset
dns64_rdata = NULL;
dns64_rdataset = NULL;
dns64_rdatalist = NULL;
- result = dns_message_findname(client->message, DNS_SECTION_ANSWER,
+ result = dns_message_findname(client->message, section,
name, dns_rdatatype_aaaa,
qctx->rdataset->covers,
&mname, &mrdataset);
*/
if (qctx->dbuf != NULL)
query_keepname(client, name, qctx->dbuf);
- dns_message_addname(client->message, name, DNS_SECTION_ANSWER);
+ dns_message_addname(client->message, name, section);
qctx->fname = NULL;
mname = name;
} else {
dns_rdataset_setownercase(dns64_rdataset, mname);
client->query.attributes |= NS_QUERYATTR_NOADDITIONAL;
dns64_rdataset->trust = qctx->rdataset->trust;
- query_addrdataset(client, mname, dns64_rdataset);
+ query_addrdataset(client, section, mname, dns64_rdataset);
dns64_rdataset = NULL;
dns64_rdatalist = NULL;
dns_message_takebuffer(client->message, &buffer);
isc_region_t r;
isc_result_t result;
unsigned int i;
+ const dns_section_t section = DNS_SECTION_ANSWER;
CTRACE(ISC_LOG_DEBUG(3), "query_filter64");
myrdata = NULL;
myrdataset = NULL;
myrdatalist = NULL;
- result = dns_message_findname(client->message, DNS_SECTION_ANSWER,
+ result = dns_message_findname(client->message, section,
name, dns_rdatatype_aaaa,
qctx->rdataset->covers,
&mname, &myrdataset);
if (qctx->dbuf != NULL)
query_keepname(client, name, qctx->dbuf);
dns_message_addname(client->message, name,
- DNS_SECTION_ANSWER);
+ section);
qctx->dbuf = NULL;
}
myrdataset->trust = qctx->rdataset->trust;
- query_addrdataset(client, mname, myrdataset);
+ query_addrdataset(client, section, mname, myrdataset);
myrdataset = NULL;
myrdatalist = NULL;
dns_message_takebuffer(client->message, &buffer);