return (result);
}
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
return (ISC_R_SUCCESS);
}
}
}
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
return (ISC_R_SUCCESS);
}
* and try again.
*/
if (i < nlabels) {
- destroynode(node);
+ destroynode((bdbnode_t *)node);
node = NULL;
continue;
}
typedef struct dns_dbimplementation dns_dbimplementation_t;
typedef struct dns_dbiterator dns_dbiterator_t;
typedef void dns_dbload_t;
-typedef void dns_dbnode_t;
-typedef struct dns_dbonupdatelistener dns_dbonupdatelistener_t;
-typedef void dns_dbversion_t;
-typedef struct dns_dlzimplementation dns_dlzimplementation_t;
-typedef struct dns_dlzdb dns_dlzdb_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_dlzimplementation dns_dlzimplementation_t;
+typedef struct dns_dlzdb dns_dlzdb_t;
typedef ISC_LIST(dns_dlzdb_t) dns_dlzdblist_t;
typedef struct dns_dyndbctx dns_dyndbctx_t;
typedef struct dns_sdlzimplementation dns_sdlzimplementation_t;
* count here because we're going to use the reference we
* already have in the search block.
*/
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
search->need_cleanup = false;
}
if (rdataset != NULL) {
if (nodep != NULL) {
newref(search->qpdb, node, nlocktype,
isc_rwlocktype_none DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
bindrdataset(search->qpdb, node, found, search->now,
nlocktype, isc_rwlocktype_none,
dns_name_copy(fname, foundname);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
result = DNS_R_COVERINGNSEC;
} else {
result = ISC_R_NOTFOUND;
if (nodep != NULL) {
newref(search.qpdb, node, nlocktype,
tlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
bindrdataset(search.qpdb, node, nsecheader, search.now,
nlocktype, tlocktype,
if (nodep != NULL) {
newref(search.qpdb, node, nlocktype,
tlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
bindrdataset(search.qpdb, node, nsheader, search.now,
nlocktype, tlocktype,
if (nodep != NULL) {
newref(search.qpdb, node, nlocktype,
tlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
if (NEGATIVE(found)) {
if (nodep != NULL) {
newref(search.qpdb, node, nlocktype,
tlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
bindrdataset(search.qpdb, node, found, search.now, nlocktype, tlocktype,
.type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers),
.trust = rdataset->trust,
.last_used = now,
- .node = qpnode,
+ .node = (dns_dbnode_t *)qpnode,
};
dns_slabheader_reset(newheader, db, node);
if (onode != NULL) {
newref(qpdb, onode, isc_rwlocktype_none,
isc_rwlocktype_none DNS__DB_FLARG_PASS);
- *nodep = qpdb->origin_node;
+ *nodep = (dns_dbnode_t *)qpdb->origin_node;
} else {
result = ISC_R_NOTFOUND;
}
rdatasetiter_first(dns_rdatasetiter_t *it DNS__DB_FLARG) {
qpc_rditer_t *iterator = (qpc_rditer_t *)it;
qpcache_t *qpdb = (qpcache_t *)(iterator->common.db);
- qpcnode_t *qpnode = iterator->common.node;
+ qpcnode_t *qpnode = (qpcnode_t *)iterator->common.node;
dns_slabheader_t *header = NULL, *top_next = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
rdatasetiter_next(dns_rdatasetiter_t *it DNS__DB_FLARG) {
qpc_rditer_t *iterator = (qpc_rditer_t *)it;
qpcache_t *qpdb = (qpcache_t *)(iterator->common.db);
- qpcnode_t *qpnode = iterator->common.node;
+ qpcnode_t *qpnode = (qpcnode_t *)iterator->common.node;
dns_slabheader_t *header = NULL, *top_next = NULL;
dns_typepair_t type, negtype;
dns_rdatatype_t rdtype, covers;
dns_rdataset_t *rdataset DNS__DB_FLARG) {
qpc_rditer_t *iterator = (qpc_rditer_t *)it;
qpcache_t *qpdb = (qpcache_t *)(iterator->common.db);
- qpcnode_t *qpnode = iterator->common.node;
+ qpcnode_t *qpnode = (qpcnode_t *)iterator->common.node;
dns_slabheader_t *header = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
newref(qpdb, node, isc_rwlocktype_none,
qpdbiter->tree_locked DNS__DB_FLARG_PASS);
- *nodep = qpdbiter->node;
+ *nodep = (dns_dbnode_t *)qpdbiter->node;
return (ISC_R_SUCCESS);
}
* it the current version.
*/
if (version->writer && commit) {
- setsecure(db, version, qpdb->origin);
+ setsecure(db, version, (dns_dbnode_t *)qpdb->origin);
}
RWLOCK(&qpdb->lock, isc_rwlocktype_write);
.type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers),
.ttl = rdataset->ttl + loadctx->now,
.trust = rdataset->trust,
- .node = node,
+ .node = (dns_dbnode_t *)node,
.serial = 1,
.count = 1,
};
- dns_slabheader_reset(newheader, (dns_db_t *)qpdb, node);
+ dns_slabheader_reset(newheader, (dns_db_t *)qpdb, (dns_dbnode_t *)node);
dns_slabheader_setownercase(newheader, name);
if ((rdataset->attributes & DNS_RDATASETATTR_RESIGN) != 0) {
if (qpdb->origin != NULL) {
dns_dbversion_t *version = qpdb->current_version;
RWUNLOCK(&qpdb->lock, isc_rwlocktype_write);
- setsecure(db, version, qpdb->origin);
+ setsecure(db, version, (dns_dbnode_t *)qpdb->origin);
} else {
RWUNLOCK(&qpdb->lock, isc_rwlocktype_write);
}
* count here because we're going to use the reference we
* already have in the search block.
*/
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
search->need_cleanup = false;
}
if (rdataset != NULL) {
if (nodep != NULL) {
newref(search->qpdb,
node DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
bindrdataset(search->qpdb, node, found,
search->now,
}
if (nodep != NULL) {
newref(search.qpdb, node DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
if ((search.version->secure && !search.version->havensec3)) {
bindrdataset(search.qpdb, node, nsecheader, 0,
} else {
search.need_cleanup = false;
}
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
if (type != dns_rdatatype_any) {
*iterator = (qpdb_rdatasetiter_t){
.common.methods = &rdatasetiter_methods,
.common.db = db,
- .common.node = node,
+ .common.node = (dns_dbnode_t *)node,
.common.version = (dns_dbversion_t *)version,
.common.options = options,
.common.magic = DNS_RDATASETITER_MAGIC,
static isc_result_t
getoriginnode(dns_db_t *db, dns_dbnode_t **nodep DNS__DB_FLARG) {
qpzonedb_t *qpdb = (qpzonedb_t *)db;
- qpznode_t *onode = NULL;
REQUIRE(VALID_QPZONE(qpdb));
REQUIRE(nodep != NULL && *nodep == NULL);
/* Note that the access to the origin node doesn't require a DB lock */
- onode = (qpznode_t *)qpdb->origin;
- INSIST(onode != NULL);
- newref(qpdb, onode DNS__DB_FLARG_PASS);
- *nodep = onode;
+ INSIST(qpdb->origin != NULL);
+ newref(qpdb, qpdb->origin DNS__DB_FLARG_PASS);
+ *nodep = (dns_dbnode_t *)qpdb->origin;
return (ISC_R_SUCCESS);
}
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 = qrditer->common.node;
+ qpznode_t *node = (qpznode_t *)qrditer->common.node;
qpz_version_t *version = qrditer->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
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 = qrditer->common.node;
+ qpznode_t *node = (qpznode_t *)qrditer->common.node;
qpz_version_t *version = qrditer->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
dns_typepair_t type, negtype;
dns_rdataset_t *rdataset DNS__DB_FLARG) {
qpdb_rdatasetiter_t *qrditer = (qpdb_rdatasetiter_t *)iterator;
qpzonedb_t *qpdb = (qpzonedb_t *)(qrditer->common.db);
- qpznode_t *node = qrditer->common.node;
+ qpznode_t *node = (qpznode_t *)qrditer->common.node;
dns_slabheader_t *header = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
newref(qpdb, node DNS__DB_FLARG_PASS);
- *nodep = qpdbiter->node;
+ *nodep = (dns_dbnode_t *)qpdbiter->node;
return (ISC_R_SUCCESS);
}
*newheader = (dns_slabheader_t){
.type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers),
.trust = rdataset->trust,
- .node = node,
+ .node = (dns_dbnode_t *)node,
};
- dns_slabheader_reset(newheader, db, node);
+ dns_slabheader_reset(newheader, db, (dns_dbnode_t *)node);
newheader->ttl = rdataset->ttl;
if (rdataset->ttl == 0U) {
DNS_SLABHEADER_SETATTR(newheader, DNS_SLABHEADERATTR_ZEROTTL);
}
newheader = (dns_slabheader_t *)region.base;
- dns_slabheader_reset(newheader, db, node);
+ dns_slabheader_reset(newheader, db, (dns_dbnode_t *)node);
newheader->ttl = rdataset->ttl;
newheader->type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers);
atomic_init(&newheader->attributes, 0);
atomic_init(&newheader->count,
atomic_fetch_add_relaxed(&init_count, 1));
newheader->last_used = 0;
- newheader->node = node;
+ newheader->node = (dns_dbnode_t *)node;
newheader->db = (dns_db_t *)qpdb;
if ((rdataset->attributes & DNS_RDATASETATTR_RESIGN) != 0) {
DNS_SLABHEADER_SETATTR(newheader, DNS_SLABHEADERATTR_RESIGN);
if (result == ISC_R_SUCCESS) {
dns_slabheader_destroy(&newheader);
newheader = (dns_slabheader_t *)subresult;
- dns_slabheader_reset(newheader, db, node);
+ dns_slabheader_reset(newheader, db,
+ (dns_dbnode_t *)node);
dns_slabheader_copycase(newheader, header);
if (RESIGN(header)) {
DNS_SLABHEADER_SETATTR(
return (ISC_R_NOTIMPLEMENTED);
}
- newheader = dns_slabheader_new(db, node);
+ newheader = dns_slabheader_new(db, (dns_dbnode_t *)node);
newheader->type = DNS_TYPEPAIR_VALUE(type, covers);
newheader->ttl = 0;
atomic_init(&newheader->attributes, DNS_SLABHEADERATTR_NONEXISTENT);
if (node_a != NULL) {
dns__db_detachnode(ctx->db,
- (dns_dbnode_t *)&node_a DNS__DB_FLARG_PASS);
+ (dns_dbnode_t **)&node_a DNS__DB_FLARG_PASS);
}
if (node_aaaa != NULL) {
dns__db_detachnode(
- ctx->db, (dns_dbnode_t *)&node_aaaa DNS__DB_FLARG_PASS);
+ ctx->db,
+ (dns_dbnode_t **)&node_aaaa DNS__DB_FLARG_PASS);
}
return (result);
static uint32_t
qpznode_hash(const qpznode_t *node) {
- return (isc_hash32(&node, sizeof(node), true));
+ const uintptr_t key = (uintptr_t)node;
+ return (isc_hash32(&key, sizeof(key), true));
}
static int
* count here because we're going to use the reference we
* already have in the search block.
*/
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
search->need_cleanup = false;
}
if (rdataset != NULL) {
if (nodep != NULL) {
dns__rbtdb_newref(search->rbtdb, node,
nlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
dns__rbtdb_bindrdataset(search->rbtdb, node, found,
search->now, nlocktype,
dns_name_copy(fname, foundname);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
result = DNS_R_COVERINGNSEC;
} else {
result = ISC_R_NOTFOUND;
if (nodep != NULL) {
dns__rbtdb_newref(search.rbtdb, node,
nlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
dns__rbtdb_bindrdataset(search.rbtdb, node, nsecheader,
search.now, nlocktype,
if (nodep != NULL) {
dns__rbtdb_newref(search.rbtdb, node,
nlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
dns__rbtdb_bindrdataset(search.rbtdb, node, nsheader,
search.now, nlocktype,
if (nodep != NULL) {
dns__rbtdb_newref(search.rbtdb, node,
nlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
if (NEGATIVE(found)) {
if (nodep != NULL) {
dns__rbtdb_newref(search.rbtdb, node,
nlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
dns__rbtdb_bindrdataset(search.rbtdb, node, found, search.now,
* count here because we're going to use the reference we
* already have in the search block.
*/
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
search->need_cleanup = false;
}
if (rdataset != NULL) {
search->rbtdb, node,
isc_rwlocktype_read
DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
dns__rbtdb_bindrdataset(
search->rbtdb, node, found,
if (nodep != NULL) {
dns__rbtdb_newref(search.rbtdb, node,
nlocktype DNS__DB_FLARG_PASS);
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
if ((search.rbtversion->secure &&
!search.rbtversion->havensec3))
} else {
search.need_cleanup = false;
}
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
}
if (type != dns_rdatatype_any) {
.type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers),
.ttl = rdataset->ttl + loadctx->now,
.trust = rdataset->trust,
- .node = node,
+ .node = (dns_dbnode_t *)node,
.serial = 1,
.count = 1,
};
- dns_slabheader_reset(newheader, (dns_db_t *)rbtdb, node);
+ dns_slabheader_reset(newheader, (dns_db_t *)rbtdb,
+ (dns_dbnode_t *)node);
dns_slabheader_setownercase(newheader, name);
if ((rdataset->attributes & DNS_RDATASETATTR_RESIGN) != 0) {
if (rbtdb->origin_node != NULL) {
dns_dbversion_t *version = rbtdb->current_version;
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_write);
- dns__rbtdb_setsecure(db, version, rbtdb->origin_node);
+ dns__rbtdb_setsecure(db, version,
+ (dns_dbnode_t *)rbtdb->origin_node);
} else {
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_write);
}
if (node_a != NULL) {
dns__db_detachnode(ctx->db,
- (dns_dbnode_t *)&node_a DNS__DB_FLARG_PASS);
+ (dns_dbnode_t **)&node_a DNS__DB_FLARG_PASS);
}
if (node_aaaa != NULL) {
dns__db_detachnode(
- ctx->db, (dns_dbnode_t *)&node_aaaa DNS__DB_FLARG_PASS);
+ ctx->db,
+ (dns_dbnode_t **)&node_aaaa DNS__DB_FLARG_PASS);
}
return (result);
* determining which NS records in the delegation are
* in-bailiwick).
*/
- dns__rbtdb_nodefullname(db, node, ctx.nodename);
+ dns__rbtdb_nodefullname(db, (dns_dbnode_t *)node, ctx.nodename);
(void)dns_rdataset_additionaldata(rdataset, dns_rootname,
glue_nsdname_cb, &ctx);
};
isc_mem_attach(db->mctx, &gluenode->mctx);
- dns_db_attachnode(db, node, (dns_dbnode_t **)&gluenode->node);
+ dns_db_attachnode(db, (dns_dbnode_t *)node,
+ (dns_dbnode_t **)&gluenode->node);
return (gluenode);
}
static uint32_t
rbtnode_hash(const dns_rbtnode_t *node) {
- return (isc_hash32(&node, sizeof(node), true));
+ uintptr_t key = (uintptr_t)node;
+ return (isc_hash32(&key, sizeof(key), true));
}
static int
* it the current version.
*/
if (version->writer && commit && !IS_CACHE(rbtdb)) {
- dns__rbtdb_setsecure(db, version, rbtdb->origin_node);
+ dns__rbtdb_setsecure(db, version,
+ (dns_dbnode_t *)rbtdb->origin_node);
}
RWLOCK(&rbtdb->lock, isc_rwlocktype_write);
* SOA records are only allowed at top of zone.
*/
if (rdataset->type == dns_rdatatype_soa &&
- node != rbtdb->origin_node)
+ node != (dns_dbnode_t *)rbtdb->origin_node)
{
return (DNS_R_NOTZONETOP);
}
.type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers),
.trust = rdataset->trust,
.last_used = now,
- .node = rbtnode,
+ .node = (dns_dbnode_t *)rbtnode,
};
dns_slabheader_reset(newheader, db, node);
atomic_init(&newheader->count,
atomic_fetch_add_relaxed(&init_count, 1));
newheader->last_used = 0;
- newheader->node = rbtnode;
+ newheader->node = (dns_dbnode_t *)rbtnode;
newheader->db = (dns_db_t *)rbtdb;
if ((rdataset->attributes & DNS_RDATASETATTR_RESIGN) != 0) {
DNS_SLABHEADER_SETATTR(newheader, DNS_SLABHEADERATTR_RESIGN);
RWLOCK(&rbtdb->lock, isc_rwlocktype_read);
version = rbtdb->current_version;
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_read);
- dns__rbtdb_setsecure(db, version, rbtdb->origin_node);
+ dns__rbtdb_setsecure(db, version,
+ (dns_dbnode_t *)rbtdb->origin_node);
}
return (result);
RWLOCK(&rbtdb->lock, isc_rwlocktype_read);
version = rbtdb->current_version;
RWUNLOCK(&rbtdb->lock, isc_rwlocktype_read);
- dns__rbtdb_setsecure(db, version, rbtdb->origin_node);
+ dns__rbtdb_setsecure(db, version,
+ (dns_dbnode_t *)rbtdb->origin_node);
}
return (result);
if (onode != NULL) {
dns__rbtdb_newref(rbtdb, onode,
isc_rwlocktype_none DNS__DB_FLARG_PASS);
- *nodep = rbtdb->origin_node;
+ *nodep = (dns_dbnode_t *)rbtdb->origin_node;
} else {
INSIST(IS_CACHE(rbtdb));
result = ISC_R_NOTFOUND;
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 = rbtiterator->common.node;
+ dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)rbtiterator->common.node;
dns_rbtdb_version_t *rbtversion = rbtiterator->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
uint32_t serial = IS_CACHE(rbtdb) ? 1 : rbtversion->serial;
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 = rbtiterator->common.node;
+ dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)rbtiterator->common.node;
dns_rbtdb_version_t *rbtversion = rbtiterator->common.version;
dns_slabheader_t *header = NULL, *top_next = NULL;
uint32_t serial = IS_CACHE(rbtdb) ? 1 : rbtversion->serial;
dns_rdataset_t *rdataset 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 = rbtiterator->common.node;
+ dns_rbtnode_t *rbtnode = (dns_rbtnode_t *)rbtiterator->common.node;
dns_slabheader_t *header = NULL;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
dns__rbtdb_newref(rbtdb, node, isc_rwlocktype_none DNS__DB_FLARG_PASS);
- *nodep = rbtdbiter->node;
+ *nodep = (dns_dbnode_t *)rbtdbiter->node;
return (result);
}
dns_name_dup(name, sdlz->common.mctx, node->name);
}
- *nodep = node;
+ *nodep = (dns_dbnode_t *)node;
return (ISC_R_SUCCESS);
}
dns_name_t *name DNS__DB_FLARG) {
sdlz_dbiterator_t *sdlziter = (sdlz_dbiterator_t *)iterator;
- attachnode(iterator->db, sdlziter->current, nodep DNS__DB_FLARG_PASS);
+ attachnode(iterator->db, (dns_dbnode_t *)sdlziter->current,
+ nodep DNS__DB_FLARG_PASS);
if (name != NULL) {
dns_name_copy(sdlziter->current->name, name);
return (ISC_R_SUCCESS);
};
qpznode_t node = { .locknum = 0 };
dns_slabheader_t header = {
- .node = &node,
+ .node = (dns_dbnode_t *)&node,
.db = (dns_db_t *)&qpdb,
};
unsigned char *raw = (unsigned char *)(&header) + sizeof(header);
dns_rdataset_t rdataset = {
.magic = DNS_RDATASET_MAGIC,
- .slab = { .db = (dns_db_t *)&qpdb, .node = &node, .raw = raw },
+ .slab = { .db = (dns_db_t *)&qpdb,
+ .node = (dns_dbnode_t *)&node,
+ .raw = raw,
+ },
.methods = &dns_rdataslab_rdatasetmethods,
};
isc_buffer_t b;
};
qpznode_t node = { .locknum = 0 };
dns_slabheader_t header = {
- .node = &node,
+ .node = (dns_dbnode_t *)&node,
.db = (dns_db_t *)&qpdb,
};
unsigned char *raw = (unsigned char *)(&header) + sizeof(header);
dns_rdataset_t rdataset = {
.magic = DNS_RDATASET_MAGIC,
- .slab = { .db = (dns_db_t *)&qpdb, .node = &node, .raw = raw },
+ .slab = { .db = (dns_db_t *)&qpdb,
+ .node = (dns_dbnode_t *)&node,
+ .raw = raw,
+ },
.methods = &dns_rdataslab_rdatasetmethods,
};
const char *str1 =