diff --git a/src/knot/zone/zone-load.c b/src/knot/zone/zone-load.c index 88000d5ec200e15bdfd9253279c1c8f32ec1d54c..fadcf84b4f64c0bb09cbde45692828569174fa54 100644 --- a/src/knot/zone/zone-load.c +++ b/src/knot/zone/zone-load.c @@ -681,16 +681,6 @@ knot_zone_t *knot_zload_load(zloader_t *loader) return NULL; } - ret = knot_zone_contents_load_nsec3param(c->current_zone); - if (ret != KNOT_EOK) { - log_zone_error("Failed to load NSEC3 params: %s\n", - knot_strerror(ret)); - rrset_list_delete(&c->node_rrsigs); - knot_zone_t *zone_to_free = c->current_zone->zone; - knot_zone_deep_free(&zone_to_free); - return NULL; - } - ret = knot_zone_connect_nsec_nodes(c->current_zone); if (ret != KNOT_EOK) { log_zone_error("Failed to connect regular and NSEC3 nodes: %s\n", diff --git a/src/libknot/dnssec/zone-nsec.h b/src/libknot/dnssec/zone-nsec.h index 3c2d548d78618767711d82c8c2e329edd3ccf8ff..355ac2cb9c0d888d45db81310d85257d4fc08f84 100644 --- a/src/libknot/dnssec/zone-nsec.h +++ b/src/libknot/dnssec/zone-nsec.h @@ -53,6 +53,10 @@ int knot_zone_create_nsec_chain(const knot_zone_contents_t *zone, * \param zone Zone for which the operation is performed. * * \return Error code, KNOT_EOK if successful. + * + * \todo IMPORTANT: this is called always when zone adjusting is. IMHO it can + * be moved back into zone adjusting as before commit bb795a4. This only + * leads to confusion and duplication of code. */ int knot_zone_connect_nsec_nodes(knot_zone_contents_t *zone); diff --git a/src/libknot/zone/zone-contents.c b/src/libknot/zone/zone-contents.c index 1caa95ffb13d7db376dedcdfd6196ca42c0fd1aa..f523de633197e0721358ef469195d8b484fd16be 100644 --- a/src/libknot/zone/zone-contents.c +++ b/src/libknot/zone/zone-contents.c @@ -1474,6 +1474,13 @@ int knot_zone_contents_adjust(knot_zone_contents_t *zone, if (zone == NULL) return KNOT_EINVAL; + int result = knot_zone_contents_load_nsec3param(zone); + if (result != KNOT_EOK) { + log_zone_error("Failed to load NSEC3 params: %s\n", + knot_strerror(result)); + return result; + } + // adjusting parameters hattrie_t *lookup_tree = NULL; @@ -1487,8 +1494,6 @@ int knot_zone_contents_adjust(knot_zone_contents_t *zone, adjust_arg.zone = zone; adjust_arg.lookup_tree = lookup_tree; - int result; - // adjust NSEC3 nodes result = knot_zone_contents_adjust_nodes(zone->nsec3_nodes, &adjust_arg,