diff options
-rw-r--r-- | src/responder/common/cache_req/cache_req.h | 3 | ||||
-rw-r--r-- | src/responder/common/cache_req/cache_req_data.c | 12 | ||||
-rw-r--r-- | src/responder/common/cache_req/cache_req_private.h | 2 | ||||
-rw-r--r-- | src/responder/common/cache_req/cache_req_search.c | 2 |
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; |