From 7e4e3fc3edf5c9192195529614e505e3dae962ba Mon Sep 17 00:00:00 2001 From: Marek Vavrusa <marek.vavrusa@nic.cz> Date: Thu, 14 Feb 2013 19:30:15 +0100 Subject: [PATCH] Enabled AXFR w/o zdump, disabled AVL, fixed node deep_copy. --- src/knot/server/zones.c | 3 ++ src/libknot/updates/xfr-in.c | 2 +- src/libknot/zone/zone-tree.c | 59 +++++++++++++++++++----------------- 3 files changed, 35 insertions(+), 29 deletions(-) diff --git a/src/knot/server/zones.c b/src/knot/server/zones.c index b1057c056..b11f4f62e 100644 --- a/src/knot/server/zones.c +++ b/src/knot/server/zones.c @@ -3045,6 +3045,9 @@ static int zones_open_free_filename(const char *old_name, char **new_name) static int zones_dump_zone_text(knot_zone_contents_t *zone, const char *fname) { + log_zone_warning("ZONE DUMP NOT IMPLEMENTED\n"); + return KNOT_EOK; + assert(zone != NULL && fname != NULL); char *new_fname = NULL; diff --git a/src/libknot/updates/xfr-in.c b/src/libknot/updates/xfr-in.c index bccd8c710..8ecebd50f 100644 --- a/src/libknot/updates/xfr-in.c +++ b/src/libknot/updates/xfr-in.c @@ -2679,7 +2679,7 @@ static int xfrin_apply_add(knot_zone_contents_t *contents, dbg_xfrin_exec_verb( char *name = knot_dname_to_str( knot_rrset_owner(chset->add[i])); - dbg_xfrin_verb("Adding RRSet: %s, type: %s\n", name, + dbg_xfrin_verb("Adding RRSet: %s, type: %u\n", name, knot_rrset_type(chset->add[i])); free(name); ); diff --git a/src/libknot/zone/zone-tree.c b/src/libknot/zone/zone-tree.c index f881bf401..54dc5a6c5 100644 --- a/src/libknot/zone/zone-tree.c +++ b/src/libknot/zone/zone-tree.c @@ -83,7 +83,7 @@ static int dname_lf(char *dst, const knot_dname_t *src, size_t maxlen) { } /* TAG:AVL */ -#include "libknot/zone/zone-tree-avl.c" +//#include "libknot/zone/zone-tree-avl.c" /*----------------------------------------------------------------------------*/ /* API functions */ @@ -97,7 +97,7 @@ knot_zone_tree_t* knot_zone_tree_create() tree->T = hattrie_create(); /* TAG:AVL */ - avl_create(&tree->avl); +// avl_create(&tree->avl); return tree; } @@ -123,7 +123,7 @@ int knot_zone_tree_insert(knot_zone_tree_t *tree, knot_node_t *node) *hattrie_get(tree->T, lf+1, *lf) = n; /* TAG:AVL */ - avl_insert(&tree->avl, n); +// avl_insert(&tree->avl, n); return KNOT_EOK; } @@ -162,10 +162,10 @@ int knot_zone_tree_get(knot_zone_tree_t *tree, const knot_dname_t *owner, } /* TAG:AVL */ - knot_node_t *avl_found = NULL; - avl_get(&tree->avl, owner, &avl_found); - if (avl_found != *found) - fprintf(stderr, "%s: avl=%p, ht=%p\n", __func__, avl_found, *found); +// knot_node_t *avl_found = NULL; +// avl_get(&tree->avl, owner, &avl_found); +// if (avl_found != *found) +// fprintf(stderr, "%s: avl=%p, ht=%p\n", __func__, avl_found, *found); return KNOT_EOK; } @@ -244,19 +244,19 @@ dbg_zone_exec_detail( ); /* TAG:AVL */ - knot_node_t *avl_found = NULL; - knot_node_t *avl_prev = NULL; - int avl_em = avl_get_less_or_equal(&tree->avl, owner, &avl_found, &avl_prev); - if(!(exact_match == avl_em && *found == avl_found && *previous == avl_prev)) { - fprintf(stderr, "%s: '%s' (ht,avl)\n...exact_match=(%d,%d)\n...found=(%s, %s)\n...prev=(%s, %s)\n", - __func__, knot_dname_to_str(owner), exact_match, avl_em, - knot_dname_to_str((*found)->owner), - knot_dname_to_str(avl_found->owner), - knot_dname_to_str((*previous)->owner), - knot_dname_to_str(avl_prev->owner)); - assert(knot_node_compare(*previous, avl_prev) >= 0 && knot_node_compare(*previous, *found) < 0); +// knot_node_t *avl_found = NULL; +// knot_node_t *avl_prev = NULL; +// int avl_em = avl_get_less_or_equal(&tree->avl, owner, &avl_found, &avl_prev); +// if(!(exact_match == avl_em && *found == avl_found && *previous == avl_prev)) { +// fprintf(stderr, "%s: '%s' (ht,avl)\n...exact_match=(%d,%d)\n...found=(%s, %s)\n...prev=(%s, %s)\n", +// __func__, knot_dname_to_str(owner), exact_match, avl_em, +// knot_dname_to_str((*found)->owner), +// knot_dname_to_str(avl_found->owner), +// knot_dname_to_str((*previous)->owner), +// knot_dname_to_str(avl_prev->owner)); +// assert(knot_node_compare(*previous, avl_prev) >= 0 && knot_node_compare(*previous, *found) < 0); - } +// } return exact_match; @@ -286,10 +286,10 @@ int knot_zone_tree_remove(knot_zone_tree_t *tree, hattrie_del(tree->T, lf+1, *lf); /* TAG:AVL */ - knot_zone_tree_node_t *avl_removed = NULL; - avl_remove(&tree->avl, owner, &avl_removed); - if (*removed != avl_removed) - fprintf(stderr, "%s: ht=%p, avl=%p\n", __func__, *removed, avl_removed); +// knot_zone_tree_node_t *avl_removed = NULL; +// avl_remove(&tree->avl, owner, &avl_removed); +// if (*removed != avl_removed) +// fprintf(stderr, "%s: ht=%p, avl=%p\n", __func__, *removed, avl_removed); return KNOT_EOK; } @@ -363,6 +363,7 @@ int knot_zone_tree_apply(knot_zone_tree_t *tree, value_t knot_zone_node_copy(value_t v) { knot_zone_tree_node_t *n = (knot_zone_tree_node_t *)v; knot_zone_tree_node_t *nv = malloc(sizeof(knot_zone_tree_node_t)); + memset(nv, 0, sizeof(knot_zone_tree_node_t)); nv->node = n->node; return (value_t)nv; } @@ -370,7 +371,9 @@ value_t knot_zone_node_copy(value_t v) { value_t knot_zone_node_deep_copy(value_t v) { knot_zone_tree_node_t *n = (knot_zone_tree_node_t *)v; knot_zone_tree_node_t *nv = malloc(sizeof(knot_zone_tree_node_t)); + memset(nv, 0, sizeof(knot_zone_tree_node_t)); knot_node_shallow_copy(n->node, &nv->node); + knot_node_set_new_node(n->node, nv->node); return (value_t)nv; } @@ -380,12 +383,12 @@ int knot_zone_tree_shallow_copy(knot_zone_tree_t *from, if (to == NULL || from == NULL) { return KNOT_EINVAL; } - + *to = malloc(sizeof(knot_zone_tree_t)); (*to)->T = hattrie_dup(from->T, knot_zone_node_copy); /* TAG:AVL */ - avl_shallow_copy(&from->avl, &(*to)->avl); +// avl_shallow_copy(&from->avl, &(*to)->avl); return KNOT_EOK; } @@ -403,7 +406,7 @@ int knot_zone_tree_deep_copy(knot_zone_tree_t *from, (*to)->T = hattrie_dup(from->T, knot_zone_node_deep_copy); /* TAG:AVL */ - avl_deep_copy(&from->avl, &(*to)->avl); +// avl_deep_copy(&from->avl, &(*to)->avl); return KNOT_EOK; } @@ -417,7 +420,7 @@ void knot_zone_tree_free(knot_zone_tree_t **tree) hattrie_free((*tree)->T); /* TAG:AVL */ - avl_free(&(*tree)->avl); +// avl_free(&(*tree)->avl); } /*----------------------------------------------------------------------------*/ @@ -433,7 +436,7 @@ void knot_zone_tree_deep_free(knot_zone_tree_t **tree) knot_zone_tree_free(tree); /* TAG:AVL */ - knot_zone_tree_free_node((*tree)->avl.th_root, 1); +// knot_zone_tree_free_node((*tree)->avl.th_root, 1); } /*----------------------------------------------------------------------------*/ -- GitLab