diff options
| author | Sumit Bose <sbose@redhat.com> | 2016-02-16 11:43:08 +0100 |
|---|---|---|
| committer | Jakub Hrozek <jhrozek@redhat.com> | 2016-04-13 10:43:18 +0200 |
| commit | cce3e8526176ce2fe9baa5bda1bb457b996b7bcf (patch) | |
| tree | afe5c23868fc8a4666954541cbb7db9c0285fa37 /src | |
| parent | 22eead9590e11c7adab33ec5ab8b46d3c3cb4406 (diff) | |
| download | sssd-cce3e8526176ce2fe9baa5bda1bb457b996b7bcf.tar.gz sssd-cce3e8526176ce2fe9baa5bda1bb457b996b7bcf.tar.xz sssd-cce3e8526176ce2fe9baa5bda1bb457b996b7bcf.zip | |
SDAP: make some AD specific calls public
Make sdap_ad_tokengroups_get_posix_members() and
sdap_ad_resolve_sids_send() reusable.
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/providers/ldap/sdap_async_ad.h | 52 | ||||
| -rw-r--r-- | src/providers/ldap/sdap_async_initgroups_ad.c | 28 |
2 files changed, 66 insertions, 14 deletions
diff --git a/src/providers/ldap/sdap_async_ad.h b/src/providers/ldap/sdap_async_ad.h new file mode 100644 index 000000000..0cbe6dfd7 --- /dev/null +++ b/src/providers/ldap/sdap_async_ad.h @@ -0,0 +1,52 @@ +/* + SSSD - header files for AD specific enhancement in the common LDAP/SDAP + code + + Authors: + Sumit Bose <sbose@redhat.com> + + Copyright (C) 2016 Red Hat + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef SDAP_ASYNC_AD_H_ +#define SDAP_ASYNC_AD_H_ + +errno_t +sdap_ad_tokengroups_get_posix_members(TALLOC_CTX *mem_ctx, + struct sss_domain_info *user_domain, + size_t num_sids, + char **sids, + size_t *_num_missing, + char ***_missing, + size_t *_num_valid, + char ***_valid_groups); + +errno_t +sdap_ad_tokengroups_update_members(const char *username, + struct sysdb_ctx *sysdb, + struct sss_domain_info *domain, + char **ldap_groups); +struct tevent_req * +sdap_ad_resolve_sids_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct sdap_id_ctx *id_ctx, + struct sdap_id_conn_ctx *conn, + struct sdap_options *opts, + struct sss_domain_info *domain, + char **sids); + +errno_t sdap_ad_resolve_sids_recv(struct tevent_req *req); +#endif /* SDAP_ASYNC_AD_H_ */ diff --git a/src/providers/ldap/sdap_async_initgroups_ad.c b/src/providers/ldap/sdap_async_initgroups_ad.c index 76b14a55b..b0f8ed41d 100644 --- a/src/providers/ldap/sdap_async_initgroups_ad.c +++ b/src/providers/ldap/sdap_async_initgroups_ad.c @@ -479,7 +479,7 @@ static errno_t sdap_get_ad_tokengroups_recv(TALLOC_CTX *mem_ctx, return EOK; } -static errno_t +errno_t sdap_ad_tokengroups_update_members(const char *username, struct sysdb_ctx *sysdb, struct sss_domain_info *domain, @@ -545,7 +545,7 @@ struct sdap_ad_resolve_sids_state { static errno_t sdap_ad_resolve_sids_step(struct tevent_req *req); static void sdap_ad_resolve_sids_done(struct tevent_req *subreq); -static struct tevent_req * +struct tevent_req * sdap_ad_resolve_sids_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct sdap_id_ctx *id_ctx, @@ -682,7 +682,7 @@ done: tevent_req_done(req); } -static errno_t sdap_ad_resolve_sids_recv(struct tevent_req *req) +errno_t sdap_ad_resolve_sids_recv(struct tevent_req *req) { TEVENT_REQ_RETURN_ON_ERROR(req); @@ -1141,15 +1141,15 @@ sdap_ad_tokengroups_initgr_posix_sids_connect_done(struct tevent_req *subreq) return; } -static errno_t +errno_t sdap_ad_tokengroups_get_posix_members(TALLOC_CTX *mem_ctx, - struct sdap_ad_tokengroups_initgr_posix_state *state, - size_t num_sids, - char **sids, - size_t *_num_missing, - char ***_missing, - size_t *_num_valid, - char ***_valid_groups) + struct sss_domain_info *user_domain, + size_t num_sids, + char **sids, + size_t *_num_missing, + char ***_missing, + size_t *_num_valid, + char ***_valid_groups) { TALLOC_CTX *tmp_ctx = NULL; struct sss_domain_info *domain = NULL; @@ -1192,7 +1192,7 @@ sdap_ad_tokengroups_get_posix_members(TALLOC_CTX *mem_ctx, sid = sids[i]; DEBUG(SSSDBG_TRACE_LIBS, "Processing membership SID [%s]\n", sid); - domain = sss_get_domain_by_sid_ldap_fallback(state->domain, sid); + domain = sss_get_domain_by_sid_ldap_fallback(user_domain, sid); if (domain == NULL) { DEBUG(SSSDBG_MINOR_FAILURE, "Domain not found for SID %s\n", sid); continue; @@ -1280,7 +1280,7 @@ sdap_ad_tokengroups_initgr_posix_tg_done(struct tevent_req *subreq) goto done; } - ret = sdap_ad_tokengroups_get_posix_members(state, state, + ret = sdap_ad_tokengroups_get_posix_members(state, state->domain, num_sids, sids, &state->num_missing_sids, &state->missing_sids, @@ -1338,7 +1338,7 @@ sdap_ad_tokengroups_initgr_posix_sids_done(struct tevent_req *subreq) goto done; } - ret = sdap_ad_tokengroups_get_posix_members(state, state, + ret = sdap_ad_tokengroups_get_posix_members(state, state->domain, state->num_missing_sids, state->missing_sids, NULL, NULL, |
