diff options
author | Pavel Březina <pbrezina@redhat.com> | 2013-09-10 14:58:20 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-10-30 22:54:40 +0100 |
commit | 4b868a12602c9588f7beef6664c97b40cf83acf8 (patch) | |
tree | 7e1d35df4f14c88c8caf69028fd90d3448dd8ce0 | |
parent | a2c1db6b43374e7811bcf12d4b90640b96e695f2 (diff) | |
download | sssd-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.c | 24 | ||||
-rw-r--r-- | src/providers/ldap/ldap_common.h | 4 |
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, |