summaryrefslogtreecommitdiffstats
path: root/contrib/bind9/lib/dns/sdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind9/lib/dns/sdb.c')
-rw-r--r--contrib/bind9/lib/dns/sdb.c50
1 files changed, 28 insertions, 22 deletions
diff --git a/contrib/bind9/lib/dns/sdb.c b/contrib/bind9/lib/dns/sdb.c
index 526ce87..191fda2 100644
--- a/contrib/bind9/lib/dns/sdb.c
+++ b/contrib/bind9/lib/dns/sdb.c
@@ -728,8 +728,9 @@ destroynode(dns_sdbnode_t *node) {
}
static isc_result_t
-findnode(dns_db_t *db, dns_name_t *name, isc_boolean_t create,
- dns_dbnode_t **nodep)
+findnodeext(dns_db_t *db, dns_name_t *name, isc_boolean_t create,
+ dns_clientinfomethods_t *methods, dns_clientinfo_t *clientinfo,
+ dns_dbnode_t **nodep)
{
dns_sdb_t *sdb = (dns_sdb_t *)db;
dns_sdbnode_t *node = NULL;
@@ -786,10 +787,11 @@ findnode(dns_db_t *db, dns_name_t *name, isc_boolean_t create,
MAYBE_LOCK(sdb);
if (imp->methods->lookup2 != NULL)
result = imp->methods->lookup2(&sdb->common.origin, name,
- sdb->dbdata, node);
+ sdb->dbdata, node, methods,
+ clientinfo);
else
result = imp->methods->lookup(sdb->zone, namestr, sdb->dbdata,
- node);
+ node, methods, clientinfo);
MAYBE_UNLOCK(sdb);
if (result != ISC_R_SUCCESS &&
!(result == ISC_R_NOTFOUND &&
@@ -814,10 +816,11 @@ findnode(dns_db_t *db, dns_name_t *name, isc_boolean_t create,
}
static isc_result_t
-find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
- dns_rdatatype_t type, unsigned int options, isc_stdtime_t now,
- dns_dbnode_t **nodep, dns_name_t *foundname,
- dns_rdataset_t *rdataset, dns_rdataset_t *sigrdataset)
+findext(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
+ dns_rdatatype_t type, unsigned int options, isc_stdtime_t now,
+ dns_dbnode_t **nodep, dns_name_t *foundname,
+ dns_clientinfomethods_t *methods, dns_clientinfo_t *clientinfo,
+ dns_rdataset_t *rdataset, dns_rdataset_t *sigrdataset)
{
dns_sdb_t *sdb = (dns_sdb_t *)db;
dns_dbnode_t *node = NULL;
@@ -857,7 +860,8 @@ find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version,
* Look up the next label.
*/
dns_name_getlabelsequence(name, nlabels - i, i, xname);
- result = findnode(db, xname, ISC_FALSE, &node);
+ result = findnodeext(db, xname, ISC_FALSE, methods,
+ clientinfo, &node);
if (result == ISC_R_NOTFOUND) {
/*
* No data at zone apex?
@@ -1264,8 +1268,8 @@ static dns_dbmethods_t sdb_methods = {
newversion,
attachversion,
closeversion,
- findnode,
- find,
+ NULL,
+ NULL,
findzonecut,
attachnode,
detachnode,
@@ -1282,17 +1286,19 @@ static dns_dbmethods_t sdb_methods = {
ispersistent,
overmem,
settask,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
+ NULL, /* getoriginnode */
+ NULL, /* transfernode */
+ NULL, /* getnsec3parameters */
+ NULL, /* findnsec3node */
+ NULL, /* setsigningtime */
+ NULL, /* getsigningtime */
+ NULL, /* resigned */
+ NULL, /* isdnssec */
+ NULL, /* getrrsetstats */
+ NULL, /* rpz_enabled */
+ NULL, /* rpz_findips */
+ findnodeext,
+ findext
};
static isc_result_t
OpenPOWER on IntegriCloud