From b9690837eac25482979ad4d95afd3d0ecefbc144 Mon Sep 17 00:00:00 2001 From: Jan Kadlec <jan.kadlec@nic.cz> Date: Thu, 13 Feb 2014 18:15:59 +0100 Subject: [PATCH] Post-merge changes in zone loading. --- src/knot/updates/xfr-in.c | 2 +- src/knot/zone/zone-load.c | 20 ++++++++++++++++---- src/knot/zone/zone-load.h | 3 +-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/knot/updates/xfr-in.c b/src/knot/updates/xfr-in.c index 093256924d..9b90be7fd4 100644 --- a/src/knot/updates/xfr-in.c +++ b/src/knot/updates/xfr-in.c @@ -301,7 +301,7 @@ int xfrin_process_axfr_packet(knot_ns_xfr_t *xfr, knot_zone_contents_t **zone) if (rr->type != KNOT_RRTYPE_SOA) { return KNOT_EMALF; } - *zone = create_zone_from_dname(rr->owner); + *zone = knot_zone_contents_new(rr->owner); if (*zone == NULL) { knot_pkt_free(&packet); return KNOT_ENOMEM; diff --git a/src/knot/zone/zone-load.c b/src/knot/zone/zone-load.c index 8979c448ca..3390a10235 100644 --- a/src/knot/zone/zone-load.c +++ b/src/knot/zone/zone-load.c @@ -187,10 +187,18 @@ static void loader_process(const scanner_t *scanner) } } -knot_zone_contents_t *create_zone_from_dname(const knot_dname_t *origin) +knot_zone_contents_t *create_zone_from_name(const char *origin) { - knot_zone_contents_t *ret = knot_zone_contents_new(origin); - return ret; + if (origin == NULL) { + return NULL; + } + knot_dname_t *owner = knot_dname_from_str(origin); + if (owner == NULL) { + return NULL; + } + knot_zone_contents_t *z = knot_zone_contents_new(owner); + knot_dname_free(&owner); + return z; } int zonefile_open(zloader_t *loader, const conf_zone_t *conf) @@ -214,6 +222,11 @@ int zonefile_open(zloader_t *loader, const conf_zone_t *conf) free(zl); return KNOT_ENOMEM; } + zl->z = create_zone_from_name(conf->name); + if (zl->z == NULL) { + free(zl); + return KNOT_ENOMEM; + } /* Create file loader. */ memset(loader, 0, sizeof(zloader_t)); @@ -328,5 +341,4 @@ void zonefile_close(zloader_t *loader) free(loader->source); free(loader->origin); free(loader->context); - free(loader); } diff --git a/src/knot/zone/zone-load.h b/src/knot/zone/zone-load.h index 90786edb30..f783bb46e0 100644 --- a/src/knot/zone/zone-load.h +++ b/src/knot/zone/zone-load.h @@ -82,8 +82,7 @@ knot_zone_contents_t *zonefile_load(zloader_t *loader); */ void zonefile_close(zloader_t *loader); -knot_zone_contents_t *create_zone_from_dname(const knot_dname_t *origin); -zone_t *create_zone_from_name(const char *origin); +knot_zone_contents_t *create_zone_from_name(const char *origin); int zone_loader_step(zone_loader_t *zl, knot_rrset_t *rr); -- GitLab