]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
node: check binode-related flags if a binode
authorDaniel Salzman <daniel.salzman@nic.cz>
Tue, 30 Jul 2019 21:39:22 +0000 (23:39 +0200)
committerDaniel Salzman <daniel.salzman@nic.cz>
Wed, 31 Jul 2019 10:30:14 +0000 (12:30 +0200)
src/knot/zone/contents.c
src/knot/zone/node.c

index f5ea384b05f92e201618082b95a5560f3e0c0888..0d3d97536920366b89603e56fcc585a1c4d1b978 100644 (file)
@@ -89,7 +89,6 @@ static bool find_in_tree(zone_tree_t *tree, const knot_dname_t *name,
 static zone_node_t *node_new_for_contents(const knot_dname_t *owner, const zone_contents_t *contents)
 {
        return node_new(owner, (contents->nodes->flags & ZONE_TREE_USE_BINODES),
-                       (contents->nodes->flags & ZONE_TREE_USE_BINODES) &&
                        (contents->nodes->flags & ZONE_TREE_BINO_SECOND), NULL);
 }
 
index c88cd7b16162034f46f7ec59e1bce522f5d223ee..35673559e4e390cc18809995311d343c83842023 100644 (file)
@@ -117,12 +117,12 @@ zone_node_t *node_new(const knot_dname_t *owner, bool binode, bool second, knot_
 
        // Node is authoritative by default.
        ret->flags = NODE_FLAGS_AUTH;
-       if (second) {
-               ret->flags |= NODE_FLAGS_DELETED;
-       }
 
        if (binode) {
                ret->flags |= NODE_FLAGS_BINODE;
+               if (second) {
+                       ret->flags |= NODE_FLAGS_DELETED;
+               }
                memcpy(ret + 1, ret, sizeof(*ret));
                (ret + 1)->flags ^= NODE_FLAGS_SECOND | NODE_FLAGS_DELETED;
        }