summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2017-02-10 12:22:23 +0100
committerJakub Hrozek <jhrozek@redhat.com>2017-02-15 14:50:56 +0100
commit2d1a59f6c2cf3cf4667cf2d01b2d780db916db42 (patch)
treebf4cce54e9774013cdeac0491e0735c14a07a5d9
parentf2047f6c5b56d6759bd8e6d504f572a593476c65 (diff)
downloadsssd-2d1a59f6c2cf3cf4667cf2d01b2d780db916db42.tar.gz
sssd-2d1a59f6c2cf3cf4667cf2d01b2d780db916db42.tar.xz
sssd-2d1a59f6c2cf3cf4667cf2d01b2d780db916db42.zip
UTIL: Add a new domain state called DOM_INCONSISTENT
This is a new domain state that indicates to the responder that it should always send a DP request because the provider is rebuilding the cache. Currently it will be only used by the files provider when it is updating the cache to make sure sssd always returns current data and updating the cache from files is not as racy. Reviewed-by: Pavel Březina <pbrezina@redhat.com>
-rw-r--r--src/confdb/confdb.h4
-rw-r--r--src/providers/data_provider_be.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/confdb/confdb.h b/src/confdb/confdb.h
index dd6ac77f5..7c9446981 100644
--- a/src/confdb/confdb.h
+++ b/src/confdb/confdb.h
@@ -248,6 +248,10 @@ enum sss_domain_state {
* return cached data
*/
DOM_INACTIVE,
+ /** Domain is being updated. Responders should ignore cached data and
+ * always contact the DP
+ */
+ DOM_INCONSISTENT,
};
/**
diff --git a/src/providers/data_provider_be.c b/src/providers/data_provider_be.c
index 12b5f43d0..7e7b74c36 100644
--- a/src/providers/data_provider_be.c
+++ b/src/providers/data_provider_be.c
@@ -166,8 +166,10 @@ static void be_mark_subdom_offline(struct sss_domain_info *subdom,
tv = tevent_timeval_current_ofs(reset_status_timeout, 0);
switch (subdom->state) {
+ case DOM_INCONSISTENT:
case DOM_DISABLED:
- DEBUG(SSSDBG_MINOR_FAILURE, "Won't touch disabled subdomain\n");
+ DEBUG(SSSDBG_MINOR_FAILURE,
+ "Won't touch disabled or inconsistent subdomain\n");
return;
case DOM_INACTIVE:
DEBUG(SSSDBG_TRACE_ALL, "Subdomain already inactive\n");