summaryrefslogtreecommitdiffstats
path: root/src/responder/common
diff options
context:
space:
mode:
authorMichal Židek <mzidek@redhat.com>2015-09-09 14:37:48 +0200
committerJakub Hrozek <jhrozek@redhat.com>2015-10-23 10:32:23 +0200
commit877b92e80bde510d5cd9f03dbf01e2bcf73ab072 (patch)
treed865b106f7d1cf9296650b4e4e4f677d56a26f89 /src/responder/common
parent10c07e188323a2f9824b5e34379f3b1a9b37759e (diff)
downloadsssd-877b92e80bde510d5cd9f03dbf01e2bcf73ab072.tar.gz
sssd-877b92e80bde510d5cd9f03dbf01e2bcf73ab072.tar.xz
sssd-877b92e80bde510d5cd9f03dbf01e2bcf73ab072.zip
util: Update get_next_domain's interface
Update get next domain to be able to include disbled domains and change the interface to accept flags instead of multiple booleans. Ticket: https://fedorahosted.org/sssd/ticket/2673 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/responder/common')
-rw-r--r--src/responder/common/negcache.c8
-rw-r--r--src/responder/common/responder_cache_req.c7
-rw-r--r--src/responder/common/responder_common.c8
-rw-r--r--src/responder/common/responder_get_domains.c9
4 files changed, 18 insertions, 14 deletions
diff --git a/src/responder/common/negcache.c b/src/responder/common/negcache.c
index fc482c411..f7af9e028 100644
--- a/src/responder/common/negcache.c
+++ b/src/responder/common/negcache.c
@@ -664,7 +664,7 @@ errno_t sss_ncache_prepopulate(struct sss_nc_ctx *ncache,
int i;
/* Populate domain-specific negative cache entries */
- for (dom = domain_list; dom; dom = get_next_domain(dom, false)) {
+ for (dom = domain_list; dom; dom = get_next_domain(dom, 0)) {
conf_path = talloc_asprintf(tmpctx, CONFDB_DOMAIN_PATH_TMPL,
dom->name);
if (!conf_path) {
@@ -765,7 +765,7 @@ errno_t sss_ncache_prepopulate(struct sss_nc_ctx *ncache,
continue;
}
} else {
- for (dom = domain_list; dom; dom = get_next_domain(dom, false)) {
+ for (dom = domain_list; dom; dom = get_next_domain(dom, 0)) {
ret = sss_ncache_set_user(ncache, true, dom, name);
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE,
@@ -780,7 +780,7 @@ errno_t sss_ncache_prepopulate(struct sss_nc_ctx *ncache,
}
filter_set = false;
- for (dom = domain_list; dom; dom = get_next_domain(dom, false)) {
+ for (dom = domain_list; dom; dom = get_next_domain(dom, 0)) {
conf_path = talloc_asprintf(tmpctx, CONFDB_DOMAIN_PATH_TMPL, dom->name);
if (!conf_path) {
ret = ENOMEM;
@@ -873,7 +873,7 @@ errno_t sss_ncache_prepopulate(struct sss_nc_ctx *ncache,
continue;
}
} else {
- for (dom = domain_list; dom; dom = get_next_domain(dom, false)) {
+ for (dom = domain_list; dom; dom = get_next_domain(dom, 0)) {
ret = sss_ncache_set_group(ncache, true, dom, name);
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE,
diff --git a/src/responder/common/responder_cache_req.c b/src/responder/common/responder_cache_req.c
index ab73401b3..fc63f84f1 100644
--- a/src/responder/common/responder_cache_req.c
+++ b/src/responder/common/responder_cache_req.c
@@ -983,7 +983,7 @@ static errno_t cache_req_next_domain(struct tevent_req *req)
while (state->domain != NULL && state->check_next
&& state->domain->fqnames
&& !cache_req_input_is_upn(state->input)) {
- state->domain = get_next_domain(state->domain, false);
+ state->domain = get_next_domain(state->domain, 0);
}
state->selected_domain = state->domain;
@@ -1011,9 +1011,10 @@ static errno_t cache_req_next_domain(struct tevent_req *req)
/* we will continue with the following domain the next time */
if (state->check_next) {
if (cache_req_input_is_upn(state->input)) {
- state->domain = get_next_domain(state->domain, true);
+ state->domain = get_next_domain(state->domain,
+ SSS_GND_DESCEND);
} else {
- state->domain = get_next_domain(state->domain, false);
+ state->domain = get_next_domain(state->domain, 0);
}
}
diff --git a/src/responder/common/responder_common.c b/src/responder/common/responder_common.c
index ebb30a458..a7e198cc5 100644
--- a/src/responder/common/responder_common.c
+++ b/src/responder/common/responder_common.c
@@ -845,7 +845,7 @@ int sss_process_init(TALLOC_CTX *mem_ctx,
goto fail;
}
- for (dom = rctx->domains; dom; dom = get_next_domain(dom, false)) {
+ for (dom = rctx->domains; dom; dom = get_next_domain(dom, 0)) {
ret = sss_names_init(rctx->cdb, rctx->cdb, dom->name, &dom->names);
if (ret != EOK) {
DEBUG(SSSDBG_FATAL_FAILURE,
@@ -923,7 +923,8 @@ responder_get_domain(struct resp_ctx *rctx, const char *name)
struct sss_domain_info *dom;
struct sss_domain_info *ret_dom = NULL;
- for (dom = rctx->domains; dom; dom = get_next_domain(dom, true)) {
+ for (dom = rctx->domains; dom;
+ dom = get_next_domain(dom, SSS_GND_DESCEND)) {
if (sss_domain_get_state(dom) == DOM_DISABLED) {
continue;
}
@@ -958,7 +959,8 @@ errno_t responder_get_domain_by_id(struct resp_ctx *rctx, const char *id,
id_len = strlen(id);
- for (dom = rctx->domains; dom; dom = get_next_domain(dom, true)) {
+ for (dom = rctx->domains; dom;
+ dom = get_next_domain(dom, SSS_GND_DESCEND)) {
if (sss_domain_get_state(dom) == DOM_DISABLED ||
dom->domain_id == NULL) {
continue;
diff --git a/src/responder/common/responder_get_domains.c b/src/responder/common/responder_get_domains.c
index 7fd0b48ee..6b354d8b2 100644
--- a/src/responder/common/responder_get_domains.c
+++ b/src/responder/common/responder_get_domains.c
@@ -186,7 +186,7 @@ struct tevent_req *sss_dp_get_domains_send(TALLOC_CTX *mem_ctx,
state->dom = rctx->domains;
while(state->dom != NULL && !NEED_CHECK_PROVIDER(state->dom->provider)) {
- state->dom = get_next_domain(state->dom, false);
+ state->dom = get_next_domain(state->dom, 0);
}
if (state->dom == NULL) {
@@ -242,11 +242,11 @@ sss_dp_get_domains_process(struct tevent_req *subreq)
}
/* Advance to the next domain */
- state->dom = get_next_domain(state->dom, false);
+ state->dom = get_next_domain(state->dom, 0);
/* Skip local domains */
while(state->dom != NULL && !NEED_CHECK_PROVIDER(state->dom->provider)) {
- state->dom = get_next_domain(state->dom, false);
+ state->dom = get_next_domain(state->dom, 0);
}
if (state->dom == NULL) {
@@ -345,7 +345,8 @@ static errno_t check_last_request(struct resp_ctx *rctx, const char *hint)
}
if (hint != NULL) {
- for (dom = rctx->domains; dom; dom = get_next_domain(dom, true)) {
+ for (dom = rctx->domains; dom;
+ dom = get_next_domain(dom, SSS_GND_DESCEND)) {
if (!IS_SUBDOMAIN(dom)) {
diff = now - dom->subdomains_last_checked.tv_sec;
/* not a subdomain */