mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
fix problem with SRV recursive additional data
This commit is contained in:
@@ -641,7 +641,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
|||||||
dns_dbnode_t *node, *znode;
|
dns_dbnode_t *node, *znode;
|
||||||
dns_db_t *db, *zdb;
|
dns_db_t *db, *zdb;
|
||||||
dns_name_t *fname, *zfname, *mname;
|
dns_name_t *fname, *zfname, *mname;
|
||||||
dns_rdataset_t *rdataset, *sigrdataset, *a6rdataset;
|
dns_rdataset_t *rdataset, *sigrdataset, *a6rdataset, *trdataset;
|
||||||
dns_rdataset_t *zrdataset, *zsigrdataset;
|
dns_rdataset_t *zrdataset, *zsigrdataset;
|
||||||
isc_buffer_t *dbuf;
|
isc_buffer_t *dbuf;
|
||||||
isc_buffer_t b;
|
isc_buffer_t b;
|
||||||
@@ -667,6 +667,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
|||||||
sigrdataset = NULL;
|
sigrdataset = NULL;
|
||||||
zsigrdataset = NULL;
|
zsigrdataset = NULL;
|
||||||
a6rdataset = NULL;
|
a6rdataset = NULL;
|
||||||
|
trdataset = NULL;
|
||||||
db = NULL;
|
db = NULL;
|
||||||
zdb = NULL;
|
zdb = NULL;
|
||||||
version = NULL;
|
version = NULL;
|
||||||
@@ -816,6 +817,7 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
|||||||
} else
|
} else
|
||||||
need_addname = ISC_TRUE;
|
need_addname = ISC_TRUE;
|
||||||
ISC_LIST_APPEND(fname->list, rdataset, link);
|
ISC_LIST_APPEND(fname->list, rdataset, link);
|
||||||
|
trdataset = rdataset;
|
||||||
rdataset = NULL;
|
rdataset = NULL;
|
||||||
added_something = ISC_TRUE;
|
added_something = ISC_TRUE;
|
||||||
/*
|
/*
|
||||||
@@ -1031,13 +1033,13 @@ query_addadditional(void *arg, dns_name_t *name, dns_rdatatype_t qtype) {
|
|||||||
* we could raise the priority of glue records.
|
* we could raise the priority of glue records.
|
||||||
*/
|
*/
|
||||||
eresult = query_addadditional(client, name, dns_rdatatype_key);
|
eresult = query_addadditional(client, name, dns_rdatatype_key);
|
||||||
} else if (type == dns_rdatatype_srv) {
|
} else if (type == dns_rdatatype_srv && trdataset != NULL) {
|
||||||
/*
|
/*
|
||||||
* If we're adding SRV records to the additional data
|
* If we're adding SRV records to the additional data
|
||||||
* section, it's helpful if we add the SRV additional data
|
* section, it's helpful if we add the SRV additional data
|
||||||
* as well.
|
* as well.
|
||||||
*/
|
*/
|
||||||
eresult = dns_rdataset_additionaldata(rdataset,
|
eresult = dns_rdataset_additionaldata(trdataset,
|
||||||
query_addadditional,
|
query_addadditional,
|
||||||
client);
|
client);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user