diff --git a/lib/dns/qpcache.c b/lib/dns/qpcache.c index 11fcff3f6d..691689889c 100644 --- a/lib/dns/qpcache.c +++ b/lib/dns/qpcache.c @@ -48,7 +48,6 @@ #include #include #include -#include #include #include #include @@ -112,11 +111,10 @@ #define ACTIVE(header, now) \ (((header)->ttl > (now)) || ((header)->ttl == (now) && ZEROTTL(header))) -#define EXPIREDOK(rbtiterator) \ - (((rbtiterator)->common.options & DNS_DB_EXPIREDOK) != 0) +#define EXPIREDOK(iterator) \ + (((iterator)->common.options & DNS_DB_EXPIREDOK) != 0) -#define STALEOK(rbtiterator) \ - (((rbtiterator)->common.options & DNS_DB_STALEOK) != 0) +#define STALEOK(iterator) (((iterator)->common.options & DNS_DB_STALEOK) != 0) #define KEEPSTALE(qpdb) ((qpdb)->common.serve_stale_ttl > 0) @@ -159,8 +157,7 @@ #define DNS_QPDB_EXPIRE_TTL_COUNT 10 /*% - * This is the structure that is used for each node in the qp trie of - * trees. For now it is a copy of the dns_rbtnode structure. + * This is the structure that is used for each node in the qp trie of trees. */ typedef struct qpcnode qpcnode_t; struct qpcnode { @@ -3766,20 +3763,19 @@ dns__qpcache_create(isc_mem_t *mctx, const dns_name_t *origin, static void rdatasetiter_destroy(dns_rdatasetiter_t **iteratorp DNS__DB_FLARG) { - qpc_rditer_t *rbtiterator = NULL; + qpc_rditer_t *iterator = NULL; - rbtiterator = (qpc_rditer_t *)(*iteratorp); + iterator = (qpc_rditer_t *)(*iteratorp); - dns__db_detachnode(rbtiterator->common.db, - &rbtiterator->common.node DNS__DB_FLARG_PASS); - isc_mem_put(rbtiterator->common.db->mctx, rbtiterator, - sizeof(*rbtiterator)); + dns__db_detachnode(iterator->common.db, + &iterator->common.node DNS__DB_FLARG_PASS); + isc_mem_put(iterator->common.db->mctx, iterator, sizeof(*iterator)); *iteratorp = NULL; } static bool -iterator_active(qpcache_t *qpdb, qpc_rditer_t *rbtiterator, +iterator_active(qpcache_t *qpdb, qpc_rditer_t *iterator, dns_slabheader_t *header) { dns_ttl_t stale_ttl = header->ttl + STALE_TTL(header, qpdb); @@ -3793,7 +3789,7 @@ iterator_active(qpcache_t *qpdb, qpc_rditer_t *rbtiterator, /* * If this header is still active then return it. */ - if (ACTIVE(header, rbtiterator->common.now)) { + if (ACTIVE(header, iterator->common.now)) { return (true); } @@ -3801,17 +3797,17 @@ iterator_active(qpcache_t *qpdb, qpc_rditer_t *rbtiterator, * If we are not returning stale records or the rdataset is * too old don't return it. */ - if (!STALEOK(rbtiterator) || (rbtiterator->common.now > stale_ttl)) { + if (!STALEOK(iterator) || (iterator->common.now > stale_ttl)) { return (false); } return (true); } static isc_result_t -rdatasetiter_first(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { - qpc_rditer_t *rbtiterator = (qpc_rditer_t *)iterator; - qpcache_t *qpdb = (qpcache_t *)(rbtiterator->common.db); - qpcnode_t *qpnode = rbtiterator->common.node; +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; dns_slabheader_t *header = NULL, *top_next = NULL; isc_rwlocktype_t nlocktype = isc_rwlocktype_none; @@ -3820,14 +3816,13 @@ rdatasetiter_first(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { for (header = qpnode->data; header != NULL; header = top_next) { top_next = header->next; do { - if (EXPIREDOK(rbtiterator)) { + if (EXPIREDOK(iterator)) { if (!NONEXISTENT(header)) { break; } header = header->down; } else if (!IGNORE(header)) { - if (!iterator_active(qpdb, rbtiterator, header)) - { + if (!iterator_active(qpdb, iterator, header)) { header = NULL; } break; @@ -3842,7 +3837,7 @@ rdatasetiter_first(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype); - rbtiterator->current = header; + iterator->current = header; if (header == NULL) { return (ISC_R_NOMORE); @@ -3852,17 +3847,17 @@ rdatasetiter_first(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { } static isc_result_t -rdatasetiter_next(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { - qpc_rditer_t *rbtiterator = (qpc_rditer_t *)iterator; - qpcache_t *qpdb = (qpcache_t *)(rbtiterator->common.db); - qpcnode_t *qpnode = rbtiterator->common.node; +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; dns_slabheader_t *header = NULL, *top_next = NULL; dns_typepair_t type, negtype; dns_rdatatype_t rdtype, covers; isc_rwlocktype_t nlocktype = isc_rwlocktype_none; - bool expiredok = EXPIREDOK(rbtiterator); + bool expiredok = EXPIREDOK(iterator); - header = rbtiterator->current; + header = iterator->current; if (header == NULL) { return (ISC_R_NOMORE); } @@ -3906,8 +3901,7 @@ rdatasetiter_next(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { } header = header->down; } else if (!IGNORE(header)) { - if (!iterator_active(qpdb, rbtiterator, header)) - { + if (!iterator_active(qpdb, iterator, header)) { header = NULL; } break; @@ -3931,7 +3925,7 @@ rdatasetiter_next(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype); - rbtiterator->current = header; + iterator->current = header; if (header == NULL) { return (ISC_R_NOMORE); @@ -3941,20 +3935,20 @@ rdatasetiter_next(dns_rdatasetiter_t *iterator DNS__DB_FLARG) { } static void -rdatasetiter_current(dns_rdatasetiter_t *iterator, +rdatasetiter_current(dns_rdatasetiter_t *it, dns_rdataset_t *rdataset DNS__DB_FLARG) { - qpc_rditer_t *rbtiterator = (qpc_rditer_t *)iterator; - qpcache_t *qpdb = (qpcache_t *)(rbtiterator->common.db); - qpcnode_t *qpnode = rbtiterator->common.node; + qpc_rditer_t *iterator = (qpc_rditer_t *)it; + qpcache_t *qpdb = (qpcache_t *)(iterator->common.db); + qpcnode_t *qpnode = iterator->common.node; dns_slabheader_t *header = NULL; isc_rwlocktype_t nlocktype = isc_rwlocktype_none; - header = rbtiterator->current; + header = iterator->current; REQUIRE(header != NULL); NODE_RDLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype); - bindrdataset(qpdb, qpnode, header, rbtiterator->common.now, nlocktype, + bindrdataset(qpdb, qpnode, header, iterator->common.now, nlocktype, isc_rwlocktype_none, rdataset DNS__DB_FLARG_PASS); NODE_UNLOCK(&qpdb->node_locks[qpnode->locknum].lock, &nlocktype);