summaryrefslogtreecommitdiffstats
path: root/ldap_driver.c
diff options
context:
space:
mode:
authorMartin Nagy <mnagy@redhat.com>2009-03-13 20:47:04 +0100
committerMartin Nagy <mnagy@redhat.com>2009-03-14 01:02:32 +0100
commit093e3d91f4f581bd6f2f6e17c26c23c44fa83714 (patch)
tree6809ba86ac0f0b74c165d971df90d4ddf27b3512 /ldap_driver.c
parent168b710feef318d238f8ef5e090f08a680b5ca23 (diff)
downloadldap_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.c32
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;