summaryrefslogtreecommitdiffstats
path: root/rdlist.c
diff options
context:
space:
mode:
authorMartin Nagy <mnagy@redhat.com>2009-03-13 22:46:43 +0100
committerMartin Nagy <mnagy@redhat.com>2009-03-14 01:02:32 +0100
commit313dfc2a67db42894749a84e2ec7bb5df6b01ffa (patch)
treeb117941ea2dd5db278bd5f116cfbbc99a1edc2bd /rdlist.c
parent093e3d91f4f581bd6f2f6e17c26c23c44fa83714 (diff)
downloadldap_driver_testing-313dfc2a67db42894749a84e2ec7bb5df6b01ffa.tar.gz
ldap_driver_testing-313dfc2a67db42894749a84e2ec7bb5df6b01ffa.tar.xz
ldap_driver_testing-313dfc2a67db42894749a84e2ec7bb5df6b01ffa.zip
Add ldap_rdatalist_copy().
Diffstat (limited to 'rdlist.c')
-rw-r--r--rdlist.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/rdlist.c b/rdlist.c
index 3976858..48b2a0b 100644
--- a/rdlist.c
+++ b/rdlist.c
@@ -106,3 +106,33 @@ cleanup:
return result;
}
+
+isc_result_t
+ldap_rdatalist_copy(isc_mem_t *mctx, ldapdb_rdatalist_t source,
+ ldapdb_rdatalist_t *target)
+{
+ dns_rdatalist_t *rdlist;
+ dns_rdatalist_t *new_rdlist;
+ isc_result_t result;
+
+ REQUIRE(mctx != NULL);
+ REQUIRE(target != NULL);
+
+ INIT_LIST(*target);
+
+ rdlist = HEAD(source);
+ while (rdlist != NULL) {
+ new_rdlist = NULL;
+ CHECK(rdatalist_clone(mctx, rdlist, &new_rdlist));
+ APPEND(*target, new_rdlist, link);
+
+ rdlist = NEXT(rdlist, link);
+ }
+
+ return ISC_R_SUCCESS;
+
+cleanup:
+ ldapdb_rdatalist_destroy(mctx, target);
+
+ return result;
+}