summaryrefslogtreecommitdiffstats
path: root/ldap_driver.c
diff options
context:
space:
mode:
authorAdam Tkac <atkac@redhat.com>2009-02-12 17:31:43 +0100
committerMartin Nagy <mnagy@redhat.com>2009-02-12 17:34:39 +0100
commitb940e76941d845baaefa7408e7c939d7d73fd277 (patch)
treeda0bd07936875f13e80191c76faa6d906687ca4e /ldap_driver.c
parent1167840b16883acdc4ab47b1ef8c69d8ed7a33d8 (diff)
downloadldap_driver_testing-b940e76941d845baaefa7408e7c939d7d73fd277.tar.gz
ldap_driver_testing-b940e76941d845baaefa7408e7c939d7d73fd277.tar.xz
ldap_driver_testing-b940e76941d845baaefa7408e7c939d7d73fd277.zip
Implemented findrdataset function.
Diffstat (limited to 'ldap_driver.c')
-rw-r--r--ldap_driver.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/ldap_driver.c b/ldap_driver.c
index b032bf0..25a98fc 100644
--- a/ldap_driver.c
+++ b/ldap_driver.c
@@ -454,16 +454,28 @@ findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version,
dns_rdatatype_t type, dns_rdatatype_t covers, isc_stdtime_t now,
dns_rdataset_t *rdataset, dns_rdataset_t *sigrdataset)
{
+ ldapdbnode_t *ldapdbnode = (ldapdbnode_t *) node;
+ dns_rdatalist_t *rdlist = NULL;
+ isc_result_t result;
+
UNUSED(db);
- UNUSED(node);
- UNUSED(version);
- UNUSED(type);
- UNUSED(covers);
UNUSED(now);
- UNUSED(rdataset);
UNUSED(sigrdataset);
- return ISC_R_NOTIMPLEMENTED;
+ REQUIRE(covers == 0); /* Only meaningful with DNSSEC capable DB*/
+ REQUIRE(VALID_LDAPDBNODE(ldapdbnode));
+
+ if (version != NULL) {
+ REQUIRE(version == ldapdb_version);
+ }
+
+ result = ldapdb_rdatalist_findrdatatype(&ldapdbnode->rdatalist, type,
+ &rdlist);
+ if (result != ISC_R_SUCCESS)
+ return result;
+
+ dns_rdatalist_tordataset(rdlist, rdataset);
+ return ISC_R_SUCCESS;
}
static isc_result_t