static isc_result_t subtractrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, dns_rdataset_t *rdataset, unsigned int options, dns_rdataset_t *newrdataset) { sampledb_t *sampledb = (sampledb_t *) db; isc_result_t result; dns_fixedname_t name; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_fixedname_init(&name); result = dns_db_subtractrdataset(sampledb->rbtdb, node, version, rdataset, options, newrdataset); if (result != ISC_R_SUCCESS && result != DNS_R_NXRRSET) goto cleanup; if (rdataset->type == dns_rdatatype_a || rdataset->type == dns_rdatatype_aaaa) { CHECK(sample_name_fromnode(node, dns_fixedname_name(&name))); CHECK(syncptrs(sampledb->inst, dns_fixedname_name(&name), rdataset, DNS_DIFFOP_DEL)); } cleanup: return (result); }
static isc_result_t expirenode(dns_db_t *db, dns_dbnode_t *node, isc_stdtime_t now) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_expirenode(sampledb->rbtdb, node, now)); }
static void detachnode(dns_db_t *db, dns_dbnode_t **targetp) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_detachnode(sampledb->rbtdb, targetp); }
static void closeversion(dns_db_t *db, dns_dbversion_t **versionp, isc_boolean_t commit) { sampledb_t *sampledb = (sampledb_t *)db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_closeversion(sampledb->rbtdb, versionp, commit); }
static isc_result_t newversion(dns_db_t *db, dns_dbversion_t **versionp) { sampledb_t *sampledb = (sampledb_t *)db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_newversion(sampledb->rbtdb, versionp)); }
static void currentversion(dns_db_t *db, dns_dbversion_t **versionp) { sampledb_t *sampledb = (sampledb_t *)db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_currentversion(sampledb->rbtdb, versionp); }
static isc_result_t serialize(dns_db_t *db, dns_dbversion_t *version, FILE *file) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_serialize(sampledb->rbtdb, version, file)); }
static void printnode(dns_db_t *db, dns_dbnode_t *node, FILE *out) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_printnode(sampledb->rbtdb, node, out); }
static void overmem(dns_db_t *db, isc_boolean_t over) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_overmem(sampledb->rbtdb, over); }
static void rpz_attach(dns_db_t *db, dns_rpz_zones_t *rpzs, dns_rpz_num_t rpz_num) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_rpz_attach(sampledb->rbtdb, rpzs, rpz_num); }
static isc_result_t setcachestats(dns_db_t *db, isc_stats_t *stats) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_setcachestats(sampledb->rbtdb, stats)); }
static isc_boolean_t isdnssec(dns_db_t *db) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_isdnssec(sampledb->rbtdb)); }
static isc_result_t getsigningtime(dns_db_t *db, dns_rdataset_t *rdataset, dns_name_t *name) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_getsigningtime(sampledb->rbtdb, rdataset, name)); }
static void resigned(dns_db_t *db, dns_rdataset_t *rdataset, dns_dbversion_t *version) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_resigned(sampledb->rbtdb, rdataset, version); }
static isc_result_t getoriginnode(dns_db_t *db, dns_dbnode_t **nodep) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_getoriginnode(sampledb->rbtdb, nodep)); }
static isc_result_t rpz_ready(dns_db_t *db) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_rpz_ready(sampledb->rbtdb)); }
static void settask(dns_db_t *db, isc_task_t *task) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_settask(sampledb->rbtdb, task); }
static unsigned int nodecount(dns_db_t *db) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_nodecount(sampledb->rbtdb)); }
static void free_sampledb(sampledb_t *sampledb) { REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_detach(&sampledb->rbtdb); dns_name_free(&sampledb->common.origin, sampledb->common.mctx); isc_mem_putanddetach(&sampledb->common.mctx, sampledb, sizeof(*sampledb)); }
static size_t hashsize(dns_db_t *db) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_hashsize(sampledb->rbtdb)); }
static isc_result_t setsigningtime(dns_db_t *db, dns_rdataset_t *rdataset, isc_stdtime_t resign) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_setsigningtime(sampledb->rbtdb, rdataset, resign)); }
static dns_stats_t * getrrsetstats(dns_db_t *db) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_getrrsetstats(sampledb->rbtdb)); }
static void attach(dns_db_t *source, dns_db_t **targetp) { sampledb_t *sampledb = (sampledb_t *)source; REQUIRE(VALID_SAMPLEDB(sampledb)); isc_refcount_increment(&sampledb->refs, NULL); *targetp = source; }
static void transfernode(dns_db_t *db, dns_dbnode_t **sourcep, dns_dbnode_t **targetp) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_transfernode(sampledb->rbtdb, sourcep, targetp); }
static isc_result_t findnsec3node(dns_db_t *db, const dns_name_t *name, isc_boolean_t create, dns_dbnode_t **nodep) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_findnsec3node(sampledb->rbtdb, name, create, nodep)); }
static void attachversion(dns_db_t *db, dns_dbversion_t *source, dns_dbversion_t **targetp) { sampledb_t *sampledb = (sampledb_t *)db; REQUIRE(VALID_SAMPLEDB(sampledb)); dns_db_attachversion(sampledb->rbtdb, source, targetp); }
static isc_result_t createiterator(dns_db_t *db, unsigned int options, dns_dbiterator_t **iteratorp) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_createiterator(sampledb->rbtdb, options, iteratorp)); }
/* * deleterdataset() function is not used during DNS update processing so syncptr * implementation is left as an exercise to the reader. */ static isc_result_t deleterdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, dns_rdatatype_t type, dns_rdatatype_t covers) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_deleterdataset(sampledb->rbtdb, node, version, type, covers)); }
static isc_result_t allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, isc_stdtime_t now, dns_rdatasetiter_t **iteratorp) { sampledb_t *sampledb = (sampledb_t *) db; REQUIRE(VALID_SAMPLEDB(sampledb)); return (dns_db_allrdatasets(sampledb->rbtdb, node, version, now, iteratorp)); }
static void detach(dns_db_t **dbp) { sampledb_t *sampledb = (sampledb_t *)(*dbp); unsigned int refs; REQUIRE(VALID_SAMPLEDB(sampledb)); isc_refcount_decrement(&sampledb->refs, &refs); if (refs == 0) free_sampledb(sampledb); *dbp = NULL; }