summaryrefslogtreecommitdiffstats
path: root/src/confdb
diff options
context:
space:
mode:
Diffstat (limited to 'src/confdb')
-rw-r--r--src/confdb/confdb.c2
-rw-r--r--src/confdb/confdb.h19
2 files changed, 20 insertions, 1 deletions
diff --git a/src/confdb/confdb.c b/src/confdb/confdb.c
index 3a8a1c01b..c097aad77 100644
--- a/src/confdb/confdb.c
+++ b/src/confdb/confdb.c
@@ -1342,6 +1342,8 @@ static int confdb_get_domain_internal(struct confdb_ctx *cdb,
domain->has_views = false;
domain->view_name = NULL;
+ domain->state = DOM_ACTIVE;
+
*_domain = domain;
ret = EOK;
done:
diff --git a/src/confdb/confdb.h b/src/confdb/confdb.h
index 427c309a2..eca3d4475 100644
--- a/src/confdb/confdb.h
+++ b/src/confdb/confdb.h
@@ -216,6 +216,23 @@
struct confdb_ctx;
struct config_file_ctx;
+/** sssd domain state */
+enum sss_domain_state {
+ /** Domain is usable by both responders and providers. This
+ * is the default state after creating a new domain
+ */
+ DOM_ACTIVE,
+ /** Domain was removed, should not be used be neither responders
+ * not providers.
+ */
+ DOM_DISABLED,
+ /** Domain cannot be contacted. Providers return an offline error code
+ * when receiving request for inactive domain, but responders should
+ * return cached data
+ */
+ DOM_INACTIVE,
+};
+
/**
* Data structure storing all of the basic features
* of a domain.
@@ -278,7 +295,7 @@ struct sss_domain_info {
struct sss_domain_info *prev;
struct sss_domain_info *next;
- bool disabled;
+ enum sss_domain_state state;
char **sd_inherit;
/* Do not use the forest pointer directly in new code, but rather the