diff options
author | Martin Nagy <mnagy@redhat.com> | 2009-03-13 20:47:04 +0100 |
---|---|---|
committer | Martin Nagy <mnagy@redhat.com> | 2009-03-14 01:02:32 +0100 |
commit | 093e3d91f4f581bd6f2f6e17c26c23c44fa83714 (patch) | |
tree | 6809ba86ac0f0b74c165d971df90d4ddf27b3512 /ldap_driver.c | |
parent | 168b710feef318d238f8ef5e090f08a680b5ca23 (diff) | |
download | ldap_driver_testing-093e3d91f4f581bd6f2f6e17c26c23c44fa83714.tar.gz ldap_driver_testing-093e3d91f4f581bd6f2f6e17c26c23c44fa83714.tar.xz ldap_driver_testing-093e3d91f4f581bd6f2f6e17c26c23c44fa83714.zip |
Separate rdatalist cloning to it's own function.
Diffstat (limited to 'ldap_driver.c')
-rw-r--r-- | ldap_driver.c | 32 |
1 files changed, 3 insertions, 29 deletions
diff --git a/ldap_driver.c b/ldap_driver.c index 05f2c91..f63cf59 100644 --- a/ldap_driver.c +++ b/ldap_driver.c @@ -33,6 +33,7 @@ #include "ldap_helper.h" #include "log.h" +#include "rdlist.h" #include "util.h" #include "zone_manager.h" @@ -107,38 +108,11 @@ clone_rdatalist_to_rdataset(isc_mem_t *mctx, dns_rdatalist_t *rdlist, dns_rdataset_t *rdataset) { isc_result_t result; - dns_rdatalist_t *new_rdlist; - dns_rdata_t *rdata; - dns_rdata_t *new_rdata; + dns_rdatalist_t *new_rdlist = NULL; REQUIRE(mctx != NULL); - CHECKED_MEM_GET_PTR(mctx, new_rdlist); - - new_rdlist->rdclass = rdlist->rdclass; - new_rdlist->type = rdlist->type; - new_rdlist->covers = rdlist->covers; - new_rdlist->ttl = rdlist->ttl; - - INIT_LIST(new_rdlist->rdata); - INIT_LINK(new_rdlist, link); - - for (rdata = HEAD(rdlist->rdata); - rdata != NULL; - rdata = NEXT(rdata, link)) { - CHECKED_MEM_GET_PTR(mctx, new_rdata); - ZERO_PTR(new_rdata); - - CHECKED_MEM_GET(mctx, new_rdata->data, rdata->length); - memcpy(new_rdata->data, rdata->data, rdata->length); - new_rdata->length = rdata->length; - new_rdata->rdclass = rdata->rdclass; - new_rdata->type = rdata->type; - new_rdata->flags = rdata->flags; - INIT_LINK(new_rdata, link); - - APPEND(new_rdlist->rdata, new_rdata, link); - } + CHECK(rdatalist_clone(mctx, rdlist, &new_rdlist)); CHECK(dns_rdatalist_tordataset(new_rdlist, rdataset)); rdataset->methods = &rdataset_methods; |