summaryrefslogtreecommitdiffstats
path: root/src/util/domain_info_utils.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2015-08-18 15:15:44 +0000
committerJakub Hrozek <jhrozek@redhat.com>2015-09-01 14:06:29 +0200
commit13e1628e34e4b4bc2320a87dd5ac888c70a63ddd (patch)
tree03c045531e44bdea2c15d9159f0b9252826b9062 /src/util/domain_info_utils.c
parent3954cd07dae78bf79136f0854472757d1ed26897 (diff)
downloadsssd-13e1628e34e4b4bc2320a87dd5ac888c70a63ddd.tar.gz
sssd-13e1628e34e4b4bc2320a87dd5ac888c70a63ddd.tar.xz
sssd-13e1628e34e4b4bc2320a87dd5ac888c70a63ddd.zip
UTIL: Convert domain->disabled into tri-state with domain states
This is a first step towards making it possible for domain to be around, but not contacted by Data Provider. Also explicitly create domains as enabled, previously we only relied on talloc_zero marking dom->disabled as false.
Diffstat (limited to 'src/util/domain_info_utils.c')
-rw-r--r--src/util/domain_info_utils.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/util/domain_info_utils.c b/src/util/domain_info_utils.c
index 4eabcff7a..dc988bb27 100644
--- a/src/util/domain_info_utils.c
+++ b/src/util/domain_info_utils.c
@@ -50,7 +50,7 @@ struct sss_domain_info *get_next_domain(struct sss_domain_info *domain,
} else {
dom = NULL;
}
- if (dom && !dom->disabled) break;
+ if (dom && sss_domain_get_state(dom) != DOM_DISABLED) break;
}
return dom;
@@ -91,7 +91,7 @@ struct sss_domain_info *find_domain_by_name(struct sss_domain_info *domain,
return NULL;
}
- while (dom && dom->disabled) {
+ while (dom && sss_domain_get_state(dom) == DOM_DISABLED) {
dom = get_next_domain(dom, true);
}
while (dom) {
@@ -119,7 +119,7 @@ struct sss_domain_info *find_domain_by_sid(struct sss_domain_info *domain,
sid_len = strlen(sid);
- while (dom && dom->disabled) {
+ while (dom && sss_domain_get_state(dom) == DOM_DISABLED) {
dom = get_next_domain(dom, true);
}
@@ -730,3 +730,14 @@ done:
return ret;
}
+
+enum sss_domain_state sss_domain_get_state(struct sss_domain_info *dom)
+{
+ return dom->state;
+}
+
+void sss_domain_set_state(struct sss_domain_info *dom,
+ enum sss_domain_state state)
+{
+ dom->state = state;
+}