]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
adjust: optimization: no longer need to re-look for node name
authorLibor Peltan <libor.peltan@nic.cz>
Fri, 1 Mar 2019 16:05:41 +0000 (17:05 +0100)
committerDaniel Salzman <daniel.salzman@nic.cz>
Fri, 26 Apr 2019 12:39:59 +0000 (14:39 +0200)
src/knot/zone/adjust.c

index e9042a82066a02e9c4e6c0a6bb20b535f468f61d..c80dc7d1f7819c9435cff1853e40c8f3b4d4ff48 100644 (file)
@@ -47,10 +47,10 @@ int adjust_cb_point_to_nsec3(zone_node_t *node, const zone_contents_t *zone)
                return KNOT_EOK;
        }
        if (node->nsec3_node != NULL) {
-               // Optimization: this node has been shallow-copied from older state. Try using already known NSEC3 name.
-               zone_node_t *candidate = zone_tree_get(zone->nsec3_nodes, node->nsec3_node->owner);
-               if (candidate != NULL && (candidate->flags & NODE_FLAGS_IN_NSEC3_CHAIN)) {
-                       node->nsec3_node = candidate;
+               zone_node_t *real_nsec3 = binode_node(node->nsec3_node, node->flags & NODE_FLAGS_SECOND);
+               if ((real_nsec3->flags & NODE_FLAGS_IN_NSEC3_CHAIN) &&
+                   !(real_nsec3->flags & NODE_FLAGS_DELETED)) {
+                       node->nsec3_node = real_nsec3;
                        return KNOT_EOK;
                }
        }