void zone_tree_deep_free(zone_tree_t **tree) { if (tree == NULL || *tree == NULL) { return; } zone_tree_apply(*tree, zone_tree_free_node, NULL); zone_tree_free(tree); }
/*! * \brief Deletes NSEC3 chain if NSEC should be used. * * \param zone Zone to fix. * \param changeset Changeset to be used. * \return KNOT_E* */ static int delete_nsec3_chain(const zone_contents_t *zone, changeset_t *changeset) { assert(zone); assert(changeset); if (zone_tree_is_empty(zone->nsec3_nodes)) { return KNOT_EOK; } zone_tree_t *empty_tree = zone_tree_create(); if (!empty_tree) { return KNOT_ENOMEM; } int result = zone_tree_add_diff(zone->nsec3_nodes, empty_tree, changeset); zone_tree_free(&empty_tree); return result; }