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:54:40 +0100
commit4b868a12602c9588f7beef6664c97b40cf83acf8 (patch)
tree7e1d35df4f14c88c8caf69028fd90d3448dd8ce0
parenta2c1db6b43374e7811bcf12d4b90640b96e695f2 (diff)
downloadsssd-4b868a12602c9588f7beef6664c97b40cf83acf8.tar.gz
sssd-4b868a12602c9588f7beef6664c97b40cf83acf8.tar.xz
sssd-4b868a12602c9588f7beef6664c97b40cf83acf8.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 1db524696..facf102ed 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,