diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2013-05-27 08:48:02 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-06-07 00:14:13 +0200 |
commit | 749cfb5d3270b5daf389d51a0dbd3fd2aec6e05d (patch) | |
tree | 65abb8438d2d31bd627861ff2fdc8cda6c07c960 /src/providers/ldap/sdap_async_groups.c | |
parent | 9aa117a93e315f790a1922d9ac7bd484878b621e (diff) | |
download | sssd-749cfb5d3270b5daf389d51a0dbd3fd2aec6e05d.tar.gz sssd-749cfb5d3270b5daf389d51a0dbd3fd2aec6e05d.tar.xz sssd-749cfb5d3270b5daf389d51a0dbd3fd2aec6e05d.zip |
LDAP: new SDAP domain structure
Previously an sdap_id_ctx was always tied to one domain with a single
set of search bases. But with the introduction of Global Catalog
lookups, primary domain and subdomains might have different search
bases.
This patch introduces a new structure sdap_domain that contains an sssd
domain or subdomain and a set of search bases. With this patch, there is
only one sdap_domain that describes the primary domain.
Diffstat (limited to 'src/providers/ldap/sdap_async_groups.c')
-rw-r--r-- | src/providers/ldap/sdap_async_groups.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c index dc7fba426..5a5bedc8f 100644 --- a/src/providers/ldap/sdap_async_groups.c +++ b/src/providers/ldap/sdap_async_groups.c @@ -1451,6 +1451,7 @@ struct sdap_get_groups_state { struct sdap_options *opts; struct sdap_handle *sh; struct sss_domain_info *dom; + struct sdap_domain *sdom; struct sysdb_ctx *sysdb; const char **attrs; const char *base_filter; @@ -1476,10 +1477,8 @@ static void sdap_get_groups_done(struct tevent_req *subreq); struct tevent_req *sdap_get_groups_send(TALLOC_CTX *memctx, struct tevent_context *ev, - struct sss_domain_info *dom, - struct sysdb_ctx *sysdb, + struct sdap_domain *sdom, struct sdap_options *opts, - struct sdap_search_base **search_bases, struct sdap_handle *sh, const char **attrs, const char *filter, @@ -1495,9 +1494,10 @@ struct tevent_req *sdap_get_groups_send(TALLOC_CTX *memctx, state->ev = ev; state->opts = opts; - state->dom = dom; + state->sdom = sdom; + state->dom = sdom->dom; state->sh = sh; - state->sysdb = sysdb; + state->sysdb = sdom->dom->sysdb; state->attrs = attrs; state->higher_usn = NULL; state->groups = NULL; @@ -1506,9 +1506,9 @@ struct tevent_req *sdap_get_groups_send(TALLOC_CTX *memctx, state->enumeration = enumeration; state->base_filter = filter; state->base_iter = 0; - state->search_bases = search_bases; + state->search_bases = sdom->group_search_bases; - if (!search_bases) { + if (!state->search_bases) { DEBUG(SSSDBG_CRIT_FAILURE, ("Group lookup request without a search base\n")); ret = EINVAL; @@ -1653,7 +1653,7 @@ static void sdap_get_groups_process(struct tevent_req *subreq) if ((state->opts->schema_type != SDAP_SCHEMA_RFC2307) && (dp_opt_get_int(state->opts->basic, SDAP_NESTING_LEVEL) != 0) && !dp_opt_get_bool(state->opts->basic, SDAP_AD_MATCHING_RULE_GROUPS)) { - subreq = sdap_nested_group_send(state, state->ev, state->dom, + subreq = sdap_nested_group_send(state, state->ev, state->sdom, state->opts, state->sh, state->groups[0]); if (!subreq) { |