mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-03 08:05:21 +00:00
Move the slabheader attribute helpers to private header
The slabheader.c, qpzone.c and qpcache.c had couple of shared macros that were copied and paste between the units. Move these common attributes access macros into private header, so these can be shared among the three compilation units.
This commit is contained in:
@@ -59,6 +59,7 @@
|
||||
|
||||
#include "db_p.h"
|
||||
#include "qpcache_p.h"
|
||||
#include "rdataslab_p.h"
|
||||
|
||||
#ifndef DNS_QPCACHE_LOG_STATS_LEVEL
|
||||
#define DNS_QPCACHE_LOG_STATS_LEVEL 3
|
||||
@@ -71,37 +72,6 @@
|
||||
goto failure; \
|
||||
} while (0)
|
||||
|
||||
#define EXISTS(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NONEXISTENT) == 0)
|
||||
#define NXDOMAIN(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NXDOMAIN) != 0)
|
||||
#define STALE(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_STALE) != 0)
|
||||
#define STALE_WINDOW(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_STALE_WINDOW) != 0)
|
||||
#define OPTOUT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_OPTOUT) != 0)
|
||||
#define NEGATIVE(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NEGATIVE) != 0)
|
||||
#define PREFETCH(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_PREFETCH) != 0)
|
||||
#define ZEROTTL(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_ZEROTTL) != 0)
|
||||
#define ANCIENT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_ANCIENT) != 0)
|
||||
#define STATCOUNT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_STATCOUNT) != 0)
|
||||
|
||||
#define STALE_TTL(header, qpdb) \
|
||||
(NXDOMAIN(header) ? 0 : qpdb->common.serve_stale_ttl)
|
||||
|
||||
|
@@ -62,6 +62,7 @@
|
||||
|
||||
#include "db_p.h"
|
||||
#include "qpzone_p.h"
|
||||
#include "rdataslab_p.h"
|
||||
|
||||
#define CHECK(op) \
|
||||
do { \
|
||||
@@ -70,22 +71,6 @@
|
||||
goto failure; \
|
||||
} while (0)
|
||||
|
||||
#define EXISTS(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NONEXISTENT) == 0)
|
||||
#define IGNORE(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_IGNORE) != 0)
|
||||
#define RESIGN(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_RESIGN) != 0)
|
||||
#define OPTOUT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_OPTOUT) != 0)
|
||||
#define STATCOUNT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_STATCOUNT) != 0)
|
||||
|
||||
#define HEADERNODE(h) ((qpznode_t *)((h)->node))
|
||||
|
||||
#define QPDB_ATTR_LOADED 0x01
|
||||
|
@@ -30,18 +30,7 @@
|
||||
#include <dns/rdataslab.h>
|
||||
#include <dns/stats.h>
|
||||
|
||||
#define CASESET(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_CASESET) != 0)
|
||||
#define CASEFULLYLOWER(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_CASEFULLYLOWER) != 0)
|
||||
#define NONEXISTENT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NONEXISTENT) != 0)
|
||||
#define NEGATIVE(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NEGATIVE) != 0)
|
||||
#include "rdataslab_p.h"
|
||||
|
||||
/*
|
||||
* The rdataslab structure allows iteration to occur in both load order
|
||||
@@ -915,10 +904,10 @@ dns_slabheader_destroy(dns_slabheader_t **headerp) {
|
||||
isc_mem_t *mctx = header->node->mctx;
|
||||
dns_db_deletedata(header->node, header);
|
||||
|
||||
if (NONEXISTENT(header)) {
|
||||
size = sizeof(*header);
|
||||
} else {
|
||||
if (EXISTS(header)) {
|
||||
size = dns_rdataslab_size(header);
|
||||
} else {
|
||||
size = sizeof(*header);
|
||||
}
|
||||
|
||||
isc_mem_put(mctx, header, size);
|
||||
|
59
lib/dns/rdataslab_p.h
Normal file
59
lib/dns/rdataslab_p.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <dns/rdataslab.h>
|
||||
|
||||
#define ANCIENT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_ANCIENT) != 0)
|
||||
#define CASEFULLYLOWER(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_CASEFULLYLOWER) != 0)
|
||||
#define CASESET(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_CASESET) != 0)
|
||||
#define EXISTS(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NONEXISTENT) == 0)
|
||||
#define IGNORE(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_IGNORE) != 0)
|
||||
#define NEGATIVE(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NEGATIVE) != 0)
|
||||
#define NXDOMAIN(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_NXDOMAIN) != 0)
|
||||
#define OPTOUT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_OPTOUT) != 0)
|
||||
#define PREFETCH(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_PREFETCH) != 0)
|
||||
#define RESIGN(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_RESIGN) != 0)
|
||||
#define STALE(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_STALE) != 0)
|
||||
#define STALE_WINDOW(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_STALE_WINDOW) != 0)
|
||||
#define STATCOUNT(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_STATCOUNT) != 0)
|
||||
#define ZEROTTL(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_ZEROTTL) != 0)
|
@@ -34,6 +34,8 @@
|
||||
#include <dns/rdatastruct.h>
|
||||
#define KEEP_BEFORE
|
||||
|
||||
#include "rdataslab_p.h"
|
||||
|
||||
/* Include the main file */
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
@@ -45,10 +47,6 @@
|
||||
#undef CHECK
|
||||
#include <tests/dns.h>
|
||||
|
||||
#define CASESET(header) \
|
||||
((atomic_load_acquire(&(header)->attributes) & \
|
||||
DNS_SLABHEADERATTR_CASESET) != 0)
|
||||
|
||||
const char *ownercase_vectors[12][2] = {
|
||||
{
|
||||
"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",
|
||||
|
Reference in New Issue
Block a user