From: Libor Peltan Date: Fri, 1 Mar 2019 16:05:41 +0000 (+0100) Subject: adjust: optimization: no longer need to re-look for node name X-Git-Tag: v2.9.0~286^2~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ab0459c94ea7264d8495c793b5d52e2422bc2c1;p=thirdparty%2Fknot-dns.git adjust: optimization: no longer need to re-look for node name --- diff --git a/src/knot/zone/adjust.c b/src/knot/zone/adjust.c index e9042a8206..c80dc7d1f7 100644 --- a/src/knot/zone/adjust.c +++ b/src/knot/zone/adjust.c @@ -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; } }