Change setsigningtime to take the node of the header being changed.
Done to facilitate further refactoring that will remove the header
pointer from vecheader.
}
static isc_result_t
-setsigningtime(dns_db_t *db, dns_rdataset_t *rdataset, isc_stdtime_t resign) {
+setsigningtime(dns_db_t *db, dns_dbnode_t *node, dns_rdataset_t *rdataset,
+ isc_stdtime_t resign) {
sampledb_t *sampledb = (sampledb_t *)db;
REQUIRE(VALID_SAMPLEDB(sampledb));
- return dns_db_setsigningtime(sampledb->db, rdataset, resign);
+ return dns_db_setsigningtime(sampledb->db, node, rdataset, resign);
}
static isc_result_t
}
isc_result_t
-dns_db_setsigningtime(dns_db_t *db, dns_rdataset_t *rdataset,
- isc_stdtime_t resign) {
+dns_db_setsigningtime(dns_db_t *db, dns_dbnode_t *node,
+ dns_rdataset_t *rdataset, isc_stdtime_t resign) {
if (db->methods->setsigningtime != NULL) {
- return (db->methods->setsigningtime)(db, rdataset, resign);
+ return (db->methods->setsigningtime)(db, node, rdataset,
+ resign);
}
return ISC_R_NOTIMPLEMENTED;
}
if (is_resign) {
isc_stdtime_t resign;
resign = dns_rdataset_minresign(&ardataset);
- dns_db_setsigningtime(db, &ardataset, resign);
+ dns_db_setsigningtime(db, node, &ardataset, resign);
}
cleanup:
isc_result_t (*findnsec3node)(dns_db_t *db, const dns_name_t *name,
bool create,
dns_dbnode_t **nodep DNS__DB_FLARG);
- isc_result_t (*setsigningtime)(dns_db_t *db, dns_rdataset_t *rdataset,
- isc_stdtime_t resign);
+ isc_result_t (*setsigningtime)(dns_db_t *db, dns_dbnode_t *node,
+ dns_rdataset_t *rdataset,
+ isc_stdtime_t resign);
isc_result_t (*getsigningtime)(dns_db_t *db, isc_stdtime_t *resign,
dns_name_t *name,
dns_typepair_t *typepair);
*/
isc_result_t
-dns_db_setsigningtime(dns_db_t *db, dns_rdataset_t *rdataset,
- isc_stdtime_t resign);
+dns_db_setsigningtime(dns_db_t *db, dns_dbnode_t *node,
+ dns_rdataset_t *rdataset, isc_stdtime_t resign);
/*%<
* Sets the re-signing time associated with 'rdataset' to 'resign'.
*
}
static isc_result_t
-setsigningtime(dns_db_t *db, dns_rdataset_t *rdataset, isc_stdtime_t resign) {
+setsigningtime(dns_db_t *db, dns_dbnode_t *node, dns_rdataset_t *rdataset,
+ isc_stdtime_t resign) {
qpzonedb_t *qpdb = (qpzonedb_t *)db;
dns_vecheader_t *header = NULL, oldheader;
isc_rwlocktype_t nlocktype = isc_rwlocktype_none;
header = dns_vecheader_getheader(rdataset);
- nlock = qpzone_get_lock(HEADERNODE(header));
+ nlock = qpzone_get_lock((qpznode_t *)node);
NODE_WRLOCK(nlock, &nlocktype);
oldheader = *header;
INSIST(RESIGN(header));
LOCK(get_heap_lock(header));
if (resign == 0) {
- isc_heap_delete(HEADERNODE(header)->heap->heap,
+ isc_heap_delete(((qpznode_t *)node)->heap->heap,
header->heap_index);
header->heap_index = 0;
} else if (resign_sooner(header, &oldheader)) {
- isc_heap_increased(HEADERNODE(header)->heap->heap,
+ isc_heap_increased(((qpznode_t *)node)->heap->heap,
header->heap_index);
} else if (resign_sooner(&oldheader, header)) {
- isc_heap_decreased(HEADERNODE(header)->heap->heap,
+ isc_heap_decreased(((qpznode_t *)node)->heap->heap,
header->heap_index);
}
UNLOCK(get_heap_lock(header));
if (result == ISC_R_SUCCESS && is_resign) {
isc_stdtime_t resign;
resign = dns_rdataset_minresign(&ardataset);
- dns_db_setsigningtime((dns_db_t *)qpdb, &ardataset, resign);
+ dns_db_setsigningtime((dns_db_t *)qpdb, (dns_dbnode_t *)node,
+ &ardataset, resign);
}
failure: