diff options
Diffstat (limited to 'src/providers/ldap/ldap_common.c')
-rw-r--r-- | src/providers/ldap/ldap_common.c | 24 |
1 files changed, 24 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, |