goto failure; \
} while (0)
-#define NONEXISTENT(header) \
+#define EXISTS(header) \
((atomic_load_acquire(&(header)->attributes) & \
- DNS_SLABHEADERATTR_NONEXISTENT) != 0)
+ DNS_SLABHEADERATTR_NONEXISTENT) == 0)
#define IGNORE(header) \
((atomic_load_acquire(&(header)->attributes) & \
DNS_SLABHEADERATTR_IGNORE) != 0)
if (header->serial <= version->serial &&
!IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
header_next = header->next;
do {
if (header->serial <= serial && !IGNORE(header)) {
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
do {
if (header->serial <= serial && !IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
do {
if (header->serial <= serial && !IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
static void
maybe_update_recordsandsize(bool add, qpz_version_t *version,
dns_slabheader_t *header, unsigned int namelen) {
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
return;
}
* we'll try to create a new rdataset that is the union
* of 'newheader' and 'header'.
*/
- if (merge && !NONEXISTENT(header)) {
+ if (merge && EXISTS(header)) {
unsigned int flags = 0;
INSIST(version->serial >= header->serial);
merged = NULL;
*
* If we're trying to delete the type, don't bother.
*/
- if (NONEXISTENT(newheader)) {
+ if (!EXISTS(newheader)) {
dns_slabheader_destroy(&newheader);
return DNS_R_UNCHANGED;
}
if (header->serial <= search->serial &&
!IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
for (header = node->data; header != NULL; header = header->next)
{
if (header->serial <= search->serial &&
- !IGNORE(header) && !NONEXISTENT(header))
+ !IGNORE(header) && EXISTS(header))
{
break;
}
header = header->next)
{
if (header->serial <= search->serial &&
- !IGNORE(header) &&
- !NONEXISTENT(header))
+ !IGNORE(header) && EXISTS(header))
{
break;
}
if (header->serial <= search->serial &&
!IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
if (header->serial <= search->serial &&
!IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
do {
if (header->serial <= search.serial && !IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
if (header->serial <= version->serial &&
!IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
if (header->serial <= version->serial &&
!IGNORE(header))
{
- if (NONEXISTENT(header)) {
+ if (!EXISTS(header)) {
header = NULL;
}
break;
while (header != NULL && IGNORE(header)) {
header = header->down;
}
- if (header != NULL && !NONEXISTENT(header)) {
+ if (header != NULL && EXISTS(header)) {
unsigned int flags = 0;
subresult = NULL;
result = ISC_R_SUCCESS;