summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/responder/common/cache_req/cache_req.h3
-rw-r--r--src/responder/common/cache_req/cache_req_data.c12
-rw-r--r--src/responder/common/cache_req/cache_req_private.h2
-rw-r--r--src/responder/common/cache_req/cache_req_search.c2
4 files changed, 18 insertions, 1 deletions
diff --git a/src/responder/common/cache_req/cache_req.h b/src/responder/common/cache_req/cache_req.h
index 185558d7d..d0e5ff439 100644
--- a/src/responder/common/cache_req/cache_req.h
+++ b/src/responder/common/cache_req/cache_req.h
@@ -111,6 +111,9 @@ cache_req_data_host(TALLOC_CTX *mem_ctx,
const char *name,
const char *alias,
const char **attrs);
+void
+cache_req_data_set_bypass_cache(struct cache_req_data *data,
+ bool bypass_cache);
/* Output data. */
diff --git a/src/responder/common/cache_req/cache_req_data.c b/src/responder/common/cache_req/cache_req_data.c
index b2e22ec1b..5ab1493b8 100644
--- a/src/responder/common/cache_req/cache_req_data.c
+++ b/src/responder/common/cache_req/cache_req_data.c
@@ -357,3 +357,15 @@ cache_req_data_host(TALLOC_CTX *mem_ctx,
return cache_req_data_create(mem_ctx, type, &input);
}
+
+void
+cache_req_data_set_bypass_cache(struct cache_req_data *data,
+ bool bypass_cache)
+{
+ if (data == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, "cache_req_data should never be NULL\n");
+ return;
+ }
+
+ data->bypass_cache = bypass_cache;
+}
diff --git a/src/responder/common/cache_req/cache_req_private.h b/src/responder/common/cache_req/cache_req_private.h
index cc4737591..3839f5aa1 100644
--- a/src/responder/common/cache_req/cache_req_private.h
+++ b/src/responder/common/cache_req/cache_req_private.h
@@ -84,6 +84,8 @@ struct cache_req_data {
struct cache_req_cased_name protocol;
uint16_t port;
} svc;
+
+ bool bypass_cache;
};
struct tevent_req *
diff --git a/src/responder/common/cache_req/cache_req_search.c b/src/responder/common/cache_req/cache_req_search.c
index eed82cf26..ebbc2c7d1 100644
--- a/src/responder/common/cache_req/cache_req_search.c
+++ b/src/responder/common/cache_req/cache_req_search.c
@@ -214,7 +214,7 @@ cache_req_search_send(TALLOC_CTX *mem_ctx,
*/
state->result = NULL;
status = CACHE_OBJECT_MISSING;
- if (!cr->plugin->bypass_cache) {
+ if (!cr->plugin->bypass_cache && !cr->data->bypass_cache) {
ret = cache_req_search_cache(state, cr, &state->result);
if (ret != EOK && ret != ENOENT) {
goto done;