Blob Blame History Raw
From 26ba3d0b033e52e63d6ec438d7be0df97cb4ce1b Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek@redhat.com>
Date: Mon, 30 Oct 2017 20:18:36 +0100
Subject: [PATCH 78/83] CACHE_REQ: Export cache_req_search_ncache_add() as
 cache_req private interface
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Previously, it was enough to add an entry to the negative cache of the
domain being processed in cache_req (cr->domain). But the locator plugin
can return any domain from the processed domain's subdomain list as
well.

Therefore, this patch extends the internal API for the possibility of
setting the negative cache in another domain as well.

Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Reviewed-by: Sumit Bose <sbose@redhat.com>
(cherry picked from commit 800b1a27543fa83bc6cd73d8e2789f3cdbaf584a)
---
 src/responder/common/cache_req/cache_req_private.h |  3 +++
 src/responder/common/cache_req/cache_req_search.c  | 10 ++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/responder/common/cache_req/cache_req_private.h b/src/responder/common/cache_req/cache_req_private.h
index 0f630542d38a277d1819063fa4134bd7d2525c90..a156fc65fed80693cdd0473613aeaaa3f5bb2269 100644
--- a/src/responder/common/cache_req/cache_req_private.h
+++ b/src/responder/common/cache_req/cache_req_private.h
@@ -116,6 +116,9 @@ cache_req_steal_data_and_send(TALLOC_CTX *mem_ctx,
                               const char *domain,
                               struct cache_req_data *data);
 
+void cache_req_search_ncache_add_to_domain(struct cache_req *cr,
+                                           struct sss_domain_info *domain);
+
 errno_t
 cache_req_add_result(TALLOC_CTX *mem_ctx,
                      struct cache_req_result *new_result,
diff --git a/src/responder/common/cache_req/cache_req_search.c b/src/responder/common/cache_req/cache_req_search.c
index 56d0345cd8f98de574961d3c9628ae7a4c24f9be..9d5ad8056cda0284b1cc32cd51d7cb0ec12ad667 100644
--- a/src/responder/common/cache_req/cache_req_search.c
+++ b/src/responder/common/cache_req/cache_req_search.c
@@ -60,7 +60,8 @@ static errno_t cache_req_search_ncache(struct cache_req *cr)
     return EOK;
 }
 
-static void cache_req_search_ncache_add(struct cache_req *cr)
+void cache_req_search_ncache_add_to_domain(struct cache_req *cr,
+                                           struct sss_domain_info *domain)
 {
     errno_t ret;
 
@@ -73,7 +74,7 @@ static void cache_req_search_ncache_add(struct cache_req *cr)
     CACHE_REQ_DEBUG(SSSDBG_TRACE_FUNC, cr, "Adding [%s] to negative cache\n",
                     cr->debugobj);
 
-    ret = cr->plugin->ncache_add_fn(cr->ncache, cr->domain, cr->data);
+    ret = cr->plugin->ncache_add_fn(cr->ncache, domain, cr->data);
     if (ret != EOK) {
         CACHE_REQ_DEBUG(SSSDBG_MINOR_FAILURE, cr,
                         "Cannot set negative cache for [%s] [%d]: %s\n",
@@ -84,6 +85,11 @@ static void cache_req_search_ncache_add(struct cache_req *cr)
     return;
 }
 
+static void cache_req_search_ncache_add(struct cache_req *cr)
+{
+    return cache_req_search_ncache_add_to_domain(cr, cr->domain);
+}
+
 static errno_t cache_req_search_ncache_filter(TALLOC_CTX *mem_ctx,
                                               struct cache_req *cr,
                                               struct ldb_result **_result)
-- 
2.14.3