summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2013-09-10 14:58:20 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-10-30 22:45:26 +0100
commitd81ce5550ba1fdebd958483d7322052c8b39c33b (patch)
tree3b12819fafea0ceb7d927e1a143af9b9a9820bd4
parentc704c35ae7ab3861c78371437e3a9ed06ba93d8b (diff)
downloadsssd-d81ce5550ba1fdebd958483d7322052c8b39c33b.tar.gz
sssd-d81ce5550ba1fdebd958483d7322052c8b39c33b.tar.xz
sssd-d81ce5550ba1fdebd958483d7322052c8b39c33b.zip
sdap: add sdap_domain_get_by_dn()
This function will find sdap domain by comparing object dn with domain base dn. Resolves: https://fedorahosted.org/sssd/ticket/2064
-rw-r--r--src/providers/ldap/ldap_common.c24
-rw-r--r--src/providers/ldap/ldap_common.h4
2 files changed, 28 insertions, 0 deletions
diff --git a/src/providers/ldap/ldap_common.c b/src/providers/ldap/ldap_common.c
index e632efccc..83f901c74 100644
--- a/src/providers/ldap/ldap_common.c
+++ b/src/providers/ldap/ldap_common.c
@@ -63,6 +63,30 @@ sdap_domain_get(struct sdap_options *opts,
return sditer;
}
+struct sdap_domain *
+sdap_domain_get_by_dn(struct sdap_options *opts,
+ const char *dn)
+{
+ struct sdap_domain *sditer = NULL;
+ char *dc = NULL;
+
+ dc = strstr(dn, "dc=");
+ if (dc == NULL) {
+ dc = strstr(dn, "DC=");
+ if (dc == NULL) {
+ return NULL;
+ }
+ }
+
+ DLIST_FOR_EACH(sditer, opts->sdom) {
+ if (strcasecmp(sditer->basedn, dc) == 0) {
+ return sditer;
+ }
+ }
+
+ return NULL;
+}
+
errno_t
sdap_domain_add(struct sdap_options *opts,
struct sss_domain_info *dom,
diff --git a/src/providers/ldap/ldap_common.h b/src/providers/ldap/ldap_common.h
index 8b2b1ea91..b3bd950e1 100644
--- a/src/providers/ldap/ldap_common.h
+++ b/src/providers/ldap/ldap_common.h
@@ -282,6 +282,10 @@ sdap_domain_remove(struct sdap_options *opts,
struct sdap_domain *sdap_domain_get(struct sdap_options *opts,
struct sss_domain_info *dom);
+
+struct sdap_domain *sdap_domain_get_by_dn(struct sdap_options *opts,
+ const char *dn);
+
errno_t
sdap_create_search_base(TALLOC_CTX *mem_ctx,
const char *unparsed_base,