REQUIRE(VALID_BDB(bdb));
REQUIRE(nodep == NULL || *nodep == NULL);
- REQUIRE(version == NULL || version == (void *)&dummy);
+ REQUIRE(version == NULL || version == (dns_dbversion_t *)&dummy);
if (!dns_name_issubdomain(name, &db->origin)) {
return (DNS_R_NXDOMAIN);
dns_rdatasetiter_t **iteratorp DNS__DB_FLARG) {
bdb_rdatasetiter_t *iterator = NULL;
- REQUIRE(version == NULL || version == &dummy);
+ REQUIRE(version == NULL || version == (dns_dbversion_t *)&dummy);
iterator = isc_mem_get(db->mctx, sizeof(bdb_rdatasetiter_t));
*iterator = (bdb_rdatasetiter_t){
typedef struct dns_dbnode dns_dbnode_t; /* this is dummy struct for proper type
checking */
typedef struct dns_dbonupdatelistener dns_dbonupdatelistener_t;
-typedef void dns_dbversion_t;
+typedef struct dns_dbversion dns_dbversion_t;
typedef struct dns_dlzimplementation dns_dlzimplementation_t;
typedef struct dns_dlzdb dns_dlzdb_t;
typedef ISC_LIST(dns_dlzdb_t) dns_dlzdblist_t;
isc_result_t result;
dns_rdataset_init(&keyset);
- result = dns_db_findrdataset(db, origin, version, dns_rdatatype_dnskey,
- 0, 0, &keyset, NULL);
+ result = dns_db_findrdataset(db, origin, (dns_dbversion_t *)version,
+ dns_rdatatype_dnskey, 0, 0, &keyset, NULL);
if (result == ISC_R_SUCCESS) {
result = dns_rdataset_first(&keyset);
while (result == ISC_R_SUCCESS) {
dns_rdataset_init(&nsecset);
dns_rdataset_init(&signsecset);
- result = dns_db_findrdataset(db, origin, version, dns_rdatatype_nsec, 0,
- 0, &nsecset, &signsecset);
+ result = dns_db_findrdataset(db, origin, (dns_dbversion_t *)version,
+ dns_rdatatype_nsec, 0, 0, &nsecset,
+ &signsecset);
if (result == ISC_R_SUCCESS) {
if (dns_rdataset_isassociated(&signsecset)) {
hasnsec = true;
attachversion(dns_db_t *db, dns_dbversion_t *source,
dns_dbversion_t **targetp) {
qpzonedb_t *qpdb = (qpzonedb_t *)db;
- qpz_version_t *version = source;
+ qpz_version_t *version = (qpz_version_t *)source;
REQUIRE(VALID_QPZONE(qpdb));
INSIST(version != NULL && version->qpdb == qpdb);
isc_refcount_increment(&version->references);
- *targetp = version;
+ *targetp = source;
}
static isc_result_t
qpdb->future_version = version;
RWUNLOCK(&qpdb->lock, isc_rwlocktype_write);
- *versionp = version;
+ *versionp = (dns_dbversion_t *)version;
return (ISC_R_SUCCESS);
}
dns_slabheader_t *header = NULL, *header_next = NULL;
dns_slabheader_t *found = NULL, *foundsig = NULL;
uint32_t serial;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
bool close_version = false;
dns_typepair_t matchtype, sigmatchtype;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
qpdb->attributes |= QPDB_ATTR_LOADED;
if (qpdb->origin != NULL) {
- dns_dbversion_t *version = qpdb->current_version;
+ qpz_version_t *version = qpdb->current_version;
RWUNLOCK(&qpdb->lock, isc_rwlocktype_write);
setsecure(db, version, (dns_dbnode_t *)qpdb->origin);
} else {
size_t *salt_length) {
qpzonedb_t *qpdb = NULL;
isc_result_t result = ISC_R_NOTFOUND;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
qpdb = (qpzonedb_t *)db;
getsize(dns_db_t *db, dns_dbversion_t *dbversion, uint64_t *records,
uint64_t *xfrsize) {
qpzonedb_t *qpdb = NULL;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
isc_result_t result = ISC_R_SUCCESS;
qpdb = (qpzonedb_t *)db;
search = (qpz_search_t){
.qpdb = (qpzonedb_t *)db,
- .version = version,
+ .version = (qpz_version_t *)version,
.serial = ((qpz_version_t *)version)->serial,
.options = options,
};
dns_rdatasetiter_t **iteratorp DNS__DB_FLARG) {
qpzonedb_t *qpdb = (qpzonedb_t *)db;
qpznode_t *node = (qpznode_t *)dbnode;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
qpdb_rdatasetiter_t *iterator = NULL;
REQUIRE(VALID_QPZONE(qpdb));
qpdb_rdatasetiter_t *qrditer = (qpdb_rdatasetiter_t *)iterator;
qpzonedb_t *qpdb = (qpzonedb_t *)(qrditer->common.db);
qpznode_t *node = (qpznode_t *)qrditer->common.node;
- qpz_version_t *version = qrditer->common.version;
+ qpz_version_t *version = (qpz_version_t *)qrditer->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
qpdb_rdatasetiter_t *qrditer = (qpdb_rdatasetiter_t *)iterator;
qpzonedb_t *qpdb = (qpzonedb_t *)(qrditer->common.db);
qpznode_t *node = (qpznode_t *)qrditer->common.node;
- qpz_version_t *version = qrditer->common.version;
+ qpz_version_t *version = (qpz_version_t *)qrditer->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
dns_typepair_t type, negtype;
dns_rdatatype_t rdtype;
isc_result_t result;
qpzonedb_t *qpdb = (qpzonedb_t *)db;
qpznode_t *node = (qpznode_t *)dbnode;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
isc_region_t region;
dns_slabheader_t *newheader = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
dns_rdataset_t *newrdataset DNS__DB_FLARG) {
qpzonedb_t *qpdb = (qpzonedb_t *)db;
qpznode_t *node = (qpznode_t *)dbnode;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
dns_fixedname_t fname;
dns_name_t *nodename = dns_fixedname_initname(&fname);
dns_slabheader_t *topheader = NULL, *topheader_prev = NULL;
dns_rdatatype_t type, dns_rdatatype_t covers DNS__DB_FLARG) {
qpzonedb_t *qpdb = (qpzonedb_t *)db;
qpznode_t *node = (qpznode_t *)dbnode;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
dns_fixedname_t fname;
dns_name_t *nodename = dns_fixedname_initname(&fname);
isc_result_t result;
addglue(dns_db_t *db, dns_dbversion_t *dbversion, dns_rdataset_t *rdataset,
dns_message_t *msg) {
qpzonedb_t *qpdb = (qpzonedb_t *)db;
- qpz_version_t *version = dbversion;
+ qpz_version_t *version = (qpz_version_t *)dbversion;
qpznode_t *node = (qpznode_t *)rdataset->slab.node;
dns_gluenode_t *gluenode = NULL;
search = (rbtdb_search_t){
.rbtdb = (dns_rbtdb_t *)db,
- .rbtversion = version,
+ .rbtversion = (dns_rbtdb_version_t *)version,
.serial = ((dns_rbtdb_version_t *)version)->serial,
.options = options,
};
dns_slabheader_t *header = NULL, *header_next = NULL;
dns_slabheader_t *found = NULL, *foundsig = NULL;
uint32_t serial;
- dns_rbtdb_version_t *rbtversion = version;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)version;
bool close_version = false;
dns_typepair_t matchtype, sigmatchtype;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
* zone key, we consider the zone secure.
*/
if (rbtdb->origin_node != NULL) {
- dns_dbversion_t *version = rbtdb->current_version;
+ dns_rbtdb_version_t *rbtversion = rbtdb->current_version;
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_write);
- dns__rbtdb_setsecure(db, version,
+ dns__rbtdb_setsecure(db, rbtversion,
(dns_dbnode_t *)rbtdb->origin_node);
} else {
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_write);
size_t *salt_length) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
isc_result_t result = ISC_R_NOTFOUND;
- dns_rbtdb_version_t *rbtversion = version;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)version;
REQUIRE(VALID_RBTDB(rbtdb));
INSIST(rbtversion == NULL || rbtversion->rbtdb == rbtdb);
uint64_t *xfrsize) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
isc_result_t result = ISC_R_SUCCESS;
- dns_rbtdb_version_t *rbtversion = version;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)version;
REQUIRE(VALID_RBTDB(rbtdb));
INSIST(rbtversion == NULL || rbtversion->rbtdb == rbtdb);
addglue(dns_db_t *db, dns_dbversion_t *dbversion, dns_rdataset_t *rdataset,
dns_message_t *msg) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
- dns_rbtdb_version_t *version = dbversion;
+ dns_rbtdb_version_t *version = (dns_rbtdb_version_t *)dbversion;
dns_rbtnode_t *node = (dns_rbtnode_t *)rdataset->slab.node;
dns_gluenode_t *gluenode = NULL;
ht_node);
if (gluenode == NULL) {
/* No cached glue was found in the table. Get new glue. */
- gluenode = new_gluenode(db, version, node, rdataset);
+ gluenode = new_gluenode(db, dbversion, node, rdataset);
struct cds_lfht_node *ht_node = cds_lfht_add_unique(
version->glue_table, gluenode_hash(gluenode),
rbtdb->future_version = version;
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_write);
- *versionp = version;
+ *versionp = (dns_dbversion_t *)version;
return (ISC_R_SUCCESS);
}
dns__rbtdb_attachversion(dns_db_t *db, dns_dbversion_t *source,
dns_dbversion_t **targetp) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
- dns_rbtdb_version_t *rbtversion = source;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)source;
REQUIRE(VALID_RBTDB(rbtdb));
INSIST(rbtversion != NULL && rbtversion->rbtdb == rbtdb);
isc_refcount_increment(&rbtversion->references);
- *targetp = rbtversion;
+ *targetp = source;
}
static rbtdb_changed_t *
REQUIRE(version != NULL);
dns_rdataset_init(&keyset);
- result = dns_db_findrdataset(db, origin, version, dns_rdatatype_dnskey,
- 0, 0, &keyset, NULL);
+ result = dns_db_findrdataset(db, origin, (dns_dbversion_t *)version,
+ dns_rdatatype_dnskey, 0, 0, &keyset, NULL);
if (result == ISC_R_SUCCESS) {
result = dns_rdataset_first(&keyset);
while (result == ISC_R_SUCCESS) {
dns_rdataset_init(&nsecset);
dns_rdataset_init(&signsecset);
- result = dns_db_findrdataset(db, origin, version, dns_rdatatype_nsec, 0,
- 0, &nsecset, &signsecset);
+ result = dns_db_findrdataset(db, origin, (dns_dbversion_t *)version,
+ dns_rdatatype_nsec, 0, 0, &nsecset,
+ &signsecset);
if (result == ISC_R_SUCCESS) {
if (dns_rdataset_isassociated(&signsecset)) {
hasnsec = true;
dns_rdatasetiter_t **iteratorp DNS__DB_FLARG) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
- dns_rbtdb_version_t *rbtversion = version;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)version;
rbtdb_rdatasetiter_t *iterator = NULL;
uint_fast32_t refs;
dns_rdataset_t *addedrdataset DNS__DB_FLARG) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
- dns_rbtdb_version_t *rbtversion = version;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)version;
isc_region_t region;
dns_slabheader_t *newheader = NULL;
isc_result_t result;
dns_rdataset_t *newrdataset DNS__DB_FLARG) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
- dns_rbtdb_version_t *rbtversion = version;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)version;
dns_fixedname_t fname;
dns_name_t *nodename = dns_fixedname_initname(&fname);
dns_slabheader_t *topheader = NULL, *topheader_prev = NULL;
unlock:
NODE_UNLOCK(&rbtdb->node_locks[rbtnode->locknum].lock, &nlocktype);
- /*
- * Update the zone's secure status. If version is non-NULL
- * this is deferred until dns__rbtdb_closeversion() is called.
- */
- if (result == ISC_R_SUCCESS && version == NULL && !IS_CACHE(rbtdb)) {
- RWLOCK(&rbtdb->lock, isc_rwlocktype_read);
- version = rbtdb->current_version;
- RWUNLOCK(&rbtdb->lock, isc_rwlocktype_read);
- dns__rbtdb_setsecure(db, version,
- (dns_dbnode_t *)rbtdb->origin_node);
- }
-
return (result);
}
dns_rdatatype_t covers DNS__DB_FLARG) {
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)db;
dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)node;
- dns_rbtdb_version_t *rbtversion = version;
+ dns_rbtdb_version_t *rbtversion = (dns_rbtdb_version_t *)version;
dns_fixedname_t fname;
dns_name_t *nodename = dns_fixedname_initname(&fname);
isc_result_t result;
* Update the zone's secure status. If version is non-NULL
* this is deferred until dns__rbtdb_closeversion() is called.
*/
- if (result == ISC_R_SUCCESS && version == NULL && !IS_CACHE(rbtdb)) {
+ if (result == ISC_R_SUCCESS && rbtversion == NULL && !IS_CACHE(rbtdb)) {
RWLOCK(&rbtdb->lock, isc_rwlocktype_read);
- version = rbtdb->current_version;
+ rbtversion = rbtdb->current_version;
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_read);
- dns__rbtdb_setsecure(db, version,
+ dns__rbtdb_setsecure(db, rbtversion,
(dns_dbnode_t *)rbtdb->origin_node);
}
rbtdb_rdatasetiter_t *rbtiterator = (rbtdb_rdatasetiter_t *)iterator;
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)(rbtiterator->common.db);
dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)rbtiterator->common.node;
- dns_rbtdb_version_t *rbtversion = rbtiterator->common.version;
+ dns_rbtdb_version_t *rbtversion =
+ (dns_rbtdb_version_t *)rbtiterator->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
uint32_t serial = IS_CACHE(rbtdb) ? 1 : rbtversion->serial;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
rbtdb_rdatasetiter_t *rbtiterator = (rbtdb_rdatasetiter_t *)iterator;
dns_rbtdb_t *rbtdb = (dns_rbtdb_t *)(rbtiterator->common.db);
dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)rbtiterator->common.node;
- dns_rbtdb_version_t *rbtversion = rbtiterator->common.version;
+ dns_rbtdb_version_t *rbtversion =
+ (dns_rbtdb_version_t *)rbtiterator->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
uint32_t serial = IS_CACHE(rbtdb) ? 1 : rbtversion->serial;
dns_typepair_t type, negtype;
dns_name_format(&sdlz->common.origin, origin, sizeof(origin));
result = sdlz->dlzimp->methods->newversion(
- origin, sdlz->dlzimp->driverarg, sdlz->dbdata, versionp);
+ origin, sdlz->dlzimp->driverarg, sdlz->dbdata,
+ (void **)versionp);
if (result != ISC_R_SUCCESS) {
sdlz_log(ISC_LOG_ERROR,
"sdlz newversion on origin %s failed : %s", origin,
sdlz->dlzimp->methods->closeversion(origin, commit,
sdlz->dlzimp->driverarg,
- sdlz->dbdata, versionp);
+ sdlz->dbdata, (void **)versionp);
if (*versionp != NULL) {
sdlz_log(ISC_LOG_ERROR, "sdlz closeversion on origin %s failed",
origin);
}
static isc_result_t
-copy_non_dnssec_records(dns_db_t *db, dns_db_t *version, dns_db_t *rawdb,
+copy_non_dnssec_records(dns_db_t *db, dns_dbversion_t *version, dns_db_t *rawdb,
dns_dbiterator_t *dbiterator, unsigned int *oldserial) {
dns_dbnode_t *rawnode = NULL, *node = NULL;
dns_fixedname_t fixed;