mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-21 22:28:34 -04:00
chg: dev: Enforce type checking for dns_dbversion_t
Originally, the dns_dbversion_t was typedef'ed to void type. This
allowed some flexibility, but using (void *) just removes any
type-checking that C might have. Instead of using:
typedef void dns_dbversion_t;
use a trick to define the type to non-existing structure:
typedef struct dns_dbversion dns_dbversion_t;
This allows the C compilers to employ the type-checking while the
structure itself doesn't have to be ever defined because the actual
'storage' is never accessed using dns_dbversion_t type.
Merge branch 'ondrej/non-void-dns_dbversion_t' into 'main'
See merge request isc-projects/bind9!9724
This commit is contained in:
commit
4b47c96a89
7 changed files with 54 additions and 61 deletions
|
|
@ -925,7 +925,7 @@ find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
|
|||
|
||||
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);
|
||||
|
|
@ -1142,7 +1142,7 @@ allrdatasets(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
|
|||
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){
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ typedef void dns_dbload_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;
|
||||
|
|
|
|||
|
|
@ -1095,8 +1095,8 @@ setsecure(dns_db_t *db, qpz_version_t *version, dns_dbnode_t *origin) {
|
|||
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) {
|
||||
|
|
@ -1118,8 +1118,9 @@ setsecure(dns_db_t *db, qpz_version_t *version, dns_dbnode_t *origin) {
|
|||
|
||||
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;
|
||||
|
|
@ -1159,14 +1160,14 @@ static void
|
|||
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
|
||||
|
|
@ -1201,7 +1202,7 @@ newversion(dns_db_t *db, dns_dbversion_t **versionp) {
|
|||
qpdb->future_version = version;
|
||||
RWUNLOCK(&qpdb->lock, isc_rwlocktype_write);
|
||||
|
||||
*versionp = version;
|
||||
*versionp = (dns_dbversion_t *)version;
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
|
@ -1511,7 +1512,7 @@ findrdataset(dns_db_t *db, dns_dbnode_t *dbnode, dns_dbversion_t *dbversion,
|
|||
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;
|
||||
|
|
@ -2224,7 +2225,7 @@ endload(dns_db_t *db, dns_rdatacallbacks_t *callbacks) {
|
|||
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 {
|
||||
|
|
@ -2263,7 +2264,7 @@ getnsec3parameters(dns_db_t *db, dns_dbversion_t *dbversion, dns_hash_t *hash,
|
|||
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;
|
||||
|
||||
|
|
@ -2303,7 +2304,7 @@ static isc_result_t
|
|||
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;
|
||||
|
|
@ -3311,7 +3312,7 @@ find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
|
|||
|
||||
search = (qpz_search_t){
|
||||
.qpdb = (qpzonedb_t *)db,
|
||||
.version = version,
|
||||
.version = (qpz_version_t *)version,
|
||||
.serial = ((qpz_version_t *)version)->serial,
|
||||
.options = options,
|
||||
};
|
||||
|
|
@ -3798,7 +3799,7 @@ allrdatasets(dns_db_t *db, dns_dbnode_t *dbnode, dns_dbversion_t *dbversion,
|
|||
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));
|
||||
|
|
@ -4004,7 +4005,7 @@ rdatasetiter_first(dns_rdatasetiter_t *iterator DNS__DB_FLARG) {
|
|||
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;
|
||||
|
||||
|
|
@ -4045,7 +4046,7 @@ rdatasetiter_next(dns_rdatasetiter_t *iterator DNS__DB_FLARG) {
|
|||
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;
|
||||
|
|
@ -4574,7 +4575,7 @@ addrdataset(dns_db_t *db, dns_dbnode_t *dbnode, dns_dbversion_t *dbversion,
|
|||
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;
|
||||
|
|
@ -4697,7 +4698,7 @@ subtractrdataset(dns_db_t *db, dns_dbnode_t *dbnode, dns_dbversion_t *dbversion,
|
|||
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;
|
||||
|
|
@ -4887,7 +4888,7 @@ deleterdataset(dns_db_t *db, dns_dbnode_t *dbnode, dns_dbversion_t *dbversion,
|
|||
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;
|
||||
|
|
@ -5269,7 +5270,7 @@ static void
|
|||
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;
|
||||
|
||||
|
|
|
|||
|
|
@ -1021,7 +1021,7 @@ zone_find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
|
|||
|
||||
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,
|
||||
};
|
||||
|
|
@ -1505,7 +1505,7 @@ zone_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
|
|||
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;
|
||||
|
|
@ -1843,9 +1843,9 @@ endload(dns_db_t *db, dns_rdatacallbacks_t *callbacks) {
|
|||
* 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);
|
||||
|
|
@ -1879,7 +1879,7 @@ getnsec3parameters(dns_db_t *db, dns_dbversion_t *version, dns_hash_t *hash,
|
|||
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);
|
||||
|
|
@ -1919,7 +1919,7 @@ getsize(dns_db_t *db, dns_dbversion_t *version, uint64_t *records,
|
|||
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);
|
||||
|
|
@ -2381,7 +2381,7 @@ static void
|
|||
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;
|
||||
|
||||
|
|
@ -2413,7 +2413,7 @@ addglue(dns_db_t *db, dns_dbversion_t *dbversion, dns_rdataset_t *rdataset,
|
|||
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),
|
||||
|
|
|
|||
|
|
@ -736,7 +736,7 @@ dns__rbtdb_newversion(dns_db_t *db, dns_dbversion_t **versionp) {
|
|||
rbtdb->future_version = version;
|
||||
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_write);
|
||||
|
||||
*versionp = version;
|
||||
*versionp = (dns_dbversion_t *)version;
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
|
@ -745,14 +745,14 @@ void
|
|||
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 *
|
||||
|
|
@ -1604,8 +1604,8 @@ dns__rbtdb_setsecure(dns_db_t *db, dns_rbtdb_version_t *version,
|
|||
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) {
|
||||
|
|
@ -1627,8 +1627,9 @@ dns__rbtdb_setsecure(dns_db_t *db, dns_rbtdb_version_t *version,
|
|||
|
||||
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;
|
||||
|
|
@ -2359,7 +2360,7 @@ dns__rbtdb_allrdatasets(dns_db_t *db, dns_dbnode_t *node,
|
|||
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;
|
||||
|
||||
|
|
@ -3258,7 +3259,7 @@ dns__rbtdb_addrdataset(dns_db_t *db, dns_dbnode_t *node,
|
|||
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;
|
||||
|
|
@ -3488,7 +3489,7 @@ dns__rbtdb_subtractrdataset(dns_db_t *db, dns_dbnode_t *node,
|
|||
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;
|
||||
|
|
@ -3687,18 +3688,6 @@ dns__rbtdb_subtractrdataset(dns_db_t *db, dns_dbnode_t *node,
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
@ -3708,7 +3697,7 @@ dns__rbtdb_deleterdataset(dns_db_t *db, dns_dbnode_t *node,
|
|||
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;
|
||||
|
|
@ -3745,11 +3734,11 @@ dns__rbtdb_deleterdataset(dns_db_t *db, dns_dbnode_t *node,
|
|||
* 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);
|
||||
}
|
||||
|
||||
|
|
@ -4150,7 +4139,8 @@ rdatasetiter_first(dns_rdatasetiter_t *iterator DNS__DB_FLARG) {
|
|||
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;
|
||||
|
|
@ -4198,7 +4188,8 @@ rdatasetiter_next(dns_rdatasetiter_t *iterator DNS__DB_FLARG) {
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -336,7 +336,8 @@ newversion(dns_db_t *db, dns_dbversion_t **versionp) {
|
|||
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,
|
||||
|
|
@ -380,7 +381,7 @@ closeversion(dns_db_t *db, dns_dbversion_t **versionp,
|
|||
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -17285,7 +17285,7 @@ restore_nsec3param(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version,
|
|||
}
|
||||
|
||||
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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue