From 313dfc2a67db42894749a84e2ec7bb5df6b01ffa Mon Sep 17 00:00:00 2001 From: Martin Nagy Date: Fri, 13 Mar 2009 22:46:43 +0100 Subject: Add ldap_rdatalist_copy(). --- rdlist.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'rdlist.c') 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; +} -- cgit