summaryrefslogtreecommitdiffstats
path: root/server/responder/common/responder.h
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2009-08-13 11:17:08 -0400
committerStephen Gallagher <sgallagh@redhat.com>2009-08-14 08:02:17 -0400
commit01c7e801761cff3c58f3de7dd4e08c99da99d7aa (patch)
tree8a1ea24d9dd3322a98e76315768caa1d789153fb /server/responder/common/responder.h
parent2e53c10c68a86c33d97936fce02c3c53aad82bfa (diff)
downloadsssd-01c7e801761cff3c58f3de7dd4e08c99da99d7aa.tar.gz
sssd-01c7e801761cff3c58f3de7dd4e08c99da99d7aa.tar.xz
sssd-01c7e801761cff3c58f3de7dd4e08c99da99d7aa.zip
Don't go to the backend for identical cache entry requests
Currently, if an additional request comes in for a cache entry while that same entry is already in the process of being refreshed, we start a duplicate cache update request. This patch adds allows the cache to maintain a hash table of all in-progress requests and queue up multiple callbacks for updates in progress. Once the data is returned, all of these callbacks will fire.
Diffstat (limited to 'server/responder/common/responder.h')
-rw-r--r--server/responder/common/responder.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/server/responder/common/responder.h b/server/responder/common/responder.h
index 881c33067..f5cdff13a 100644
--- a/server/responder/common/responder.h
+++ b/server/responder/common/responder.h
@@ -29,10 +29,13 @@
#include "talloc.h"
#include "tevent.h"
#include "ldb.h"
+#include "dhash.h"
#include "sbus/sssd_dbus.h"
#include "../sss_client/sss_cli.h"
#include "util/btreemap.h"
+extern hash_table_t *dp_requests;
+
/* if there is a provider other than the special local */
#define NEED_CHECK_PROVIDER(provider) \
(provider != NULL && strcmp(provider, "local") != 0)