dns_slabheader_t *zonecut_header;
dns_slabheader_t *zonecut_sigheader;
dns_fixedname_t zonecut_name;
- isc_stdtime_t now;
} qpz_search_t;
/*%
*/
typedef struct {
dns_db_t *db;
- isc_stdtime_t now;
dns_qp_t *tree;
dns_qp_t *nsec;
dns_qp_t *nsec3;
static void
bindrdataset(qpzonedb_t *qpdb, qpznode_t *node, dns_slabheader_t *header,
- isc_stdtime_t now, dns_rdataset_t *rdataset DNS__DB_FLARG) {
+ dns_rdataset_t *rdataset DNS__DB_FLARG) {
if (rdataset == NULL) {
return;
}
rdataset->rdclass = qpdb->common.rdclass;
rdataset->type = DNS_TYPEPAIR_TYPE(header->type);
rdataset->covers = DNS_TYPEPAIR_COVERS(header->type);
- rdataset->ttl = header->expire - now;
+ rdataset->ttl = header->ttl;
rdataset->trust = header->trust;
if (OPTOUT(header)) {
}
}
if (found != NULL) {
- bindrdataset(qpdb, node, found, 0, rdataset DNS__DB_FLARG_PASS);
+ bindrdataset(qpdb, node, found, rdataset DNS__DB_FLARG_PASS);
if (foundsig != NULL) {
- bindrdataset(qpdb, node, foundsig, 0,
+ bindrdataset(qpdb, node, foundsig,
sigrdataset DNS__DB_FLARG_PASS);
}
}
add(qpzonedb_t *qpdb, qpznode_t *node, const dns_name_t *nodename,
qpz_version_t *version, dns_slabheader_t *newheader, unsigned int options,
bool loading, dns_rdataset_t *addedrdataset,
- isc_stdtime_t now DNS__DB_FLARG) {
+ isc_stdtime_t now ISC_ATTR_UNUSED DNS__DB_FLARG) {
qpz_changed_t *changed = NULL;
dns_slabheader_t *topheader = NULL, *topheader_prev = NULL;
dns_slabheader_t *prioheader = NULL;
flags |= DNS_RDATASLAB_EXACT;
}
if ((options & DNS_DBADD_EXACTTTL) != 0 &&
- newheader->expire != header->expire)
+ newheader->ttl != header->ttl)
{
result = DNS_R_NOTEXACT;
- } else if (newheader->expire != header->expire) {
+ } else if (newheader->ttl != header->ttl) {
flags |= DNS_RDATASLAB_FORCE;
}
if (result == ISC_R_SUCCESS) {
}
if (addedrdataset != NULL) {
- bindrdataset(qpdb, node, newheader, now,
+ bindrdataset(qpdb, node, newheader,
addedrdataset DNS__DB_FLARG_PASS);
}
newheader = (dns_slabheader_t *)region.base;
*newheader = (dns_slabheader_t){
.type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers),
- .expire = rdataset->ttl + loadctx->now,
+ .ttl = rdataset->ttl,
.trust = rdataset->trust,
.node = (dns_dbnode_t *)node,
.serial = 1,
isc_rwlock_t *nlock = &search->qpdb->node_locks[node->locknum];
NODE_RDLOCK(nlock, &nlocktype);
bindrdataset(search->qpdb, node, search->zonecut_header,
- search->now, rdataset DNS__DB_FLARG_PASS);
+ rdataset DNS__DB_FLARG_PASS);
if (sigrdataset != NULL && search->zonecut_sigheader != NULL) {
bindrdataset(search->qpdb, node,
- search->zonecut_sigheader, search->now,
+ search->zonecut_sigheader,
sigrdataset DNS__DB_FLARG_PASS);
}
NODE_UNLOCK(nlock, &nlocktype);
*nodep = (dns_dbnode_t *)node;
}
bindrdataset(search->qpdb, node, found,
- search->now,
+
rdataset DNS__DB_FLARG_PASS);
if (foundsig != NULL) {
bindrdataset(
search->qpdb, node, foundsig,
- search->now,
+
sigrdataset DNS__DB_FLARG_PASS);
}
} else if (found == NULL && foundsig == NULL) {
*nodep = (dns_dbnode_t *)node;
}
if (search.version->secure && !search.version->havensec3) {
- bindrdataset(search.qpdb, node, nsecheader, 0,
+ bindrdataset(search.qpdb, node, nsecheader,
rdataset DNS__DB_FLARG_PASS);
if (nsecsig != NULL) {
- bindrdataset(search.qpdb, node, nsecsig, 0,
+ bindrdataset(search.qpdb, node, nsecsig,
sigrdataset DNS__DB_FLARG_PASS);
}
}
}
if (type != dns_rdatatype_any) {
- bindrdataset(search.qpdb, node, found, 0,
+ bindrdataset(search.qpdb, node, found,
rdataset DNS__DB_FLARG_PASS);
if (foundsig != NULL) {
- bindrdataset(search.qpdb, node, foundsig, 0,
+ bindrdataset(search.qpdb, node, foundsig,
sigrdataset DNS__DB_FLARG_PASS);
}
}
NODE_RDLOCK(nlock, &nlocktype);
- bindrdataset(qpdb, node, header, qrditer->common.now,
- rdataset DNS__DB_FLARG_PASS);
+ bindrdataset(qpdb, node, header, rdataset DNS__DB_FLARG_PASS);
NODE_UNLOCK(nlock, &nlocktype);
}
};
dns_slabheader_reset(newheader, db, (dns_dbnode_t *)node);
- newheader->expire = rdataset->ttl;
+ 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, (dns_dbnode_t *)node);
- newheader->expire = rdataset->ttl;
+ newheader->ttl = rdataset->ttl;
newheader->type = DNS_TYPEPAIR_VALUE(rdataset->type, rdataset->covers);
atomic_init(&newheader->attributes, 0);
newheader->serial = version->serial;
result = ISC_R_SUCCESS;
if ((options & DNS_DBSUB_EXACT) != 0) {
flags |= DNS_RDATASLAB_EXACT;
- if (newheader->expire != header->expire) {
+ if (newheader->ttl != header->ttl) {
result = DNS_R_NOTEXACT;
}
}
dns_slabheader_destroy(&newheader);
newheader = dns_slabheader_new((dns_db_t *)qpdb,
(dns_dbnode_t *)node);
- newheader->expire = 0;
+ newheader->ttl = 0;
newheader->type = topheader->type;
atomic_init(&newheader->attributes,
DNS_SLABHEADERATTR_NONEXISTENT);
}
if (result == ISC_R_SUCCESS && newrdataset != NULL) {
- bindrdataset(qpdb, node, newheader, 0,
+ bindrdataset(qpdb, node, newheader,
newrdataset DNS__DB_FLARG_PASS);
}
if (result == DNS_R_NXRRSET && newrdataset != NULL &&
(options & DNS_DBSUB_WANTOLD) != 0)
{
- bindrdataset(qpdb, node, header, 0,
+ bindrdataset(qpdb, node, header,
newrdataset DNS__DB_FLARG_PASS);
}
newheader = dns_slabheader_new(db, (dns_dbnode_t *)node);
newheader->type = DNS_TYPEPAIR_VALUE(type, covers);
- newheader->expire = 0;
+ newheader->ttl = 0;
atomic_init(&newheader->attributes, DNS_SLABHEADERATTR_NONEXISTENT);
newheader->serial = version->serial;