mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 22:15:20 +00:00
refactor filter-aaaa implementation
- the goal of this change is for AAAA filtering to be fully contained in the query logic, and implemented at discrete points that can be replaced with hook callouts later on. - the new code may be slightly less efficient than the old filter-aaaa implementation, but maximum efficiency was never a priority for AAAA filtering anyway. - we now use the rdataset RENDERED attribute to indicate that an AAAA rdataset should not be included when rendering the message. (this flag was originally meant to indicate that an rdataset has already been rendered and should not be repeated, but it can also be used to prevent rendering in the first place.) - the DNS_MESSAGERENDER_FILTER_AAAA, NS_CLIENTATTR_FILTER_AAAA, and DNS_RDATASETGLUE_FILTERAAAA flags are all now unnecessary and have been removed.
This commit is contained in:
@@ -1097,23 +1097,6 @@ client_send(ns_client_t *client) {
|
||||
preferred_glue = DNS_MESSAGERENDER_PREFER_AAAA;
|
||||
}
|
||||
|
||||
/*
|
||||
* filter-aaaa-on-v4 yes or break-dnssec option to suppress
|
||||
* AAAA records.
|
||||
*
|
||||
* We already know that request came via IPv4,
|
||||
* that we have both AAAA and A records,
|
||||
* and that we either have no signatures that the client wants
|
||||
* or we are supposed to break DNSSEC.
|
||||
*
|
||||
* Override preferred glue if necessary.
|
||||
*/
|
||||
if ((client->attributes & NS_CLIENTATTR_FILTER_AAAA) != 0) {
|
||||
render_opts |= DNS_MESSAGERENDER_FILTER_AAAA;
|
||||
if (preferred_glue == DNS_MESSAGERENDER_PREFER_AAAA)
|
||||
preferred_glue = DNS_MESSAGERENDER_PREFER_A;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create an OPT for our reply.
|
||||
*/
|
||||
@@ -3064,6 +3047,7 @@ client_create(ns_clientmgr_t *manager, ns_client_t **clientp) {
|
||||
ISC_QLINK_INIT(client, ilink);
|
||||
client->keytag = NULL;
|
||||
client->keytag_len = 0;
|
||||
client->hookflags = 0;
|
||||
|
||||
/*
|
||||
* We call the init routines for the various kinds of client here,
|
||||
|
Reference in New Issue
Block a user