Blame SOURCES/0079-CACHE_REQ-Add-plugin-methods-required-for-the-domain.patch

ced1f5
From 4127348220f6b32886fcc1e3f890a2e9fdedf7ed Mon Sep 17 00:00:00 2001
ced1f5
From: Jakub Hrozek <jhrozek@redhat.com>
ced1f5
Date: Mon, 30 Oct 2017 20:52:42 +0100
ced1f5
Subject: [PATCH 79/83] CACHE_REQ: Add plugin methods required for the
ced1f5
 domain-locator request
ced1f5
MIME-Version: 1.0
ced1f5
Content-Type: text/plain; charset=UTF-8
ced1f5
Content-Transfer-Encoding: 8bit
ced1f5
ced1f5
Adds three new cache_req plugin methods:
ced1f5
    - cache_req_dp_get_domain_check_fn - check if it is time to run the
ced1f5
                                         locator request again
ced1f5
    - cache_req_dp_get_domain_send/recv_fn - run the locator itself
ced1f5
ced1f5
The reason we added also the checker is that when the locator runs,
ced1f5
we add a temporary entry into the negative cache that would denote that
ced1f5
the locator ran and the ordinary domain negative cache (UID negcache,
ced1f5
GID negcache, ..) were set for the domains and can be still used to
ced1f5
skip domains that we know do not contain the account without calling
ced1f5
the getAccountDomain handler again.
ced1f5
ced1f5
If we didn't have this checker, requesting an entry from a domain
ced1f5
further down the domain list would always call the locator, only
ced1f5
to always receive the same results.
ced1f5
ced1f5
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
ced1f5
Reviewed-by: Sumit Bose <sbose@redhat.com>
ced1f5
(cherry picked from commit 2856dac5818265a6b4e42d768b73c65e333d14ff)
ced1f5
---
ced1f5
 src/responder/common/cache_req/cache_req_plugin.h  | 69 ++++++++++++++++++++++
ced1f5
 .../cache_req/plugins/cache_req_enum_groups.c      |  5 +-
ced1f5
 .../common/cache_req/plugins/cache_req_enum_svc.c  |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_enum_users.c       |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_group_by_filter.c  |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_group_by_id.c      |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_group_by_name.c    |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_host_by_name.c     |  5 +-
ced1f5
 .../plugins/cache_req_initgroups_by_name.c         |  5 +-
ced1f5
 .../plugins/cache_req_initgroups_by_upn.c          |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_netgroup_by_name.c |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_object_by_id.c     |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_object_by_name.c   |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_object_by_sid.c    |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_svc_by_name.c      |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_svc_by_port.c      |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_user_by_cert.c     |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_user_by_filter.c   |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_user_by_id.c       |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_user_by_name.c     |  5 +-
ced1f5
 .../cache_req/plugins/cache_req_user_by_upn.c      |  5 +-
ced1f5
 21 files changed, 149 insertions(+), 20 deletions(-)
ced1f5
ced1f5
diff --git a/src/responder/common/cache_req/cache_req_plugin.h b/src/responder/common/cache_req/cache_req_plugin.h
ced1f5
index 8117325506b2951c3966fa50506ed0d55273ee81..803d0f4fa5a54900a458d170177e89f82b398bd9 100644
ced1f5
--- a/src/responder/common/cache_req/cache_req_plugin.h
ced1f5
+++ b/src/responder/common/cache_req/cache_req_plugin.h
ced1f5
@@ -153,6 +153,72 @@ typedef bool
ced1f5
 (*cache_req_dp_recv_fn)(struct tevent_req *subreq,
ced1f5
                         struct cache_req *cr);
ced1f5
 
ced1f5
+/**
ced1f5
+ * Check whether the results of the domain locator can still
ced1f5
+ * be considered valid or whether it is time to call the request
ced1f5
+ * again.
ced1f5
+ *
ced1f5
+ * @param   resp_ctx        The responder context
ced1f5
+ * @param   domain          The domain to check. This should be the domain-head,
ced1f5
+ *                          because the locator works across a domain and its
ced1f5
+ *                          subdomains.
ced1f5
+ * @param   data            The cache req data that contain primarily the key
ced1f5
+ *                          to look for.
ced1f5
+ *
ced1f5
+ * @return True if the locator plugin should be ran again, false if
ced1f5
+ * @return False false ifthe lookup should just proceed with the
ced1f5
+ * data that is already in the negative cache.
ced1f5
+ */
ced1f5
+typedef bool
ced1f5
+(*cache_req_dp_get_domain_check_fn)(struct resp_ctx *rctx,
ced1f5
+                                    struct sss_domain_info *domain,
ced1f5
+                                    struct cache_req_data *data);
ced1f5
+/**
ced1f5
+ * Send Data Provider request to locate the domain
ced1f5
+ * of an entry
ced1f5
+ *
ced1f5
+ * @param   resp_ctx        The responder context
ced1f5
+ * @param   domain          The domain to check. This should be the domain-head,
ced1f5
+ *                          because the locator works across a domain and its
ced1f5
+ *                          subdomains.
ced1f5
+ * @param   data            The cache req data that contain primarily the key
ced1f5
+ *                          to look for.
ced1f5
+ *
ced1f5
+ *
ced1f5
+ * @return Tevent request on success.
ced1f5
+ * @return NULL on error.
ced1f5
+ */
ced1f5
+typedef struct tevent_req *
ced1f5
+(*cache_req_dp_get_domain_send_fn)(TALLOC_CTX *mem_ctx,
ced1f5
+                                   struct resp_ctx *rctx,
ced1f5
+                                   struct sss_domain_info *domain,
ced1f5
+                                   struct cache_req_data *data);
ced1f5
+
ced1f5
+/**
ced1f5
+ * Process result of Data Provider find-domain request.
ced1f5
+ *
ced1f5
+ * Do not free subreq! It will be freed in the caller.
ced1f5
+ *
ced1f5
+ * @param       mem_ctx         The memory context that owns the _found_domain
ced1f5
+ *                              result parameter
ced1f5
+ * @param       subreq          The request to finish
ced1f5
+ * @param       cr              The cache_req being processed
ced1f5
+ * @param       _found_domain   The domain the request account belongs to. This
ced1f5
+ *                              parameter can be NULL even on success, in that
ced1f5
+ *                              case the account was not found and no lookups are
ced1f5
+ *                              needed, all domains can be skipped in this case.
ced1f5
+ *
ced1f5
+ * @return EOK if the request did not encounter any error. In this
ced1f5
+ * case, the _found_domain parameter can be considered authoritative,
ced1f5
+ * regarless of its value
ced1f5
+ * @return errno on error. _found_domain should be NULL in this case.
ced1f5
+ */
ced1f5
+typedef errno_t
ced1f5
+(*cache_req_dp_get_domain_recv_fn)(TALLOC_CTX *mem_ctx,
ced1f5
+                                   struct tevent_req *subreq,
ced1f5
+                                   struct cache_req *cr,
ced1f5
+                                   char **_found_domain);
ced1f5
+
ced1f5
 struct cache_req_plugin {
ced1f5
     /**
ced1f5
      * Plugin name.
ced1f5
@@ -223,6 +289,9 @@ struct cache_req_plugin {
ced1f5
     cache_req_lookup_fn lookup_fn;
ced1f5
     cache_req_dp_send_fn dp_send_fn;
ced1f5
     cache_req_dp_recv_fn dp_recv_fn;
ced1f5
+    cache_req_dp_get_domain_check_fn dp_get_domain_check_fn;
ced1f5
+    cache_req_dp_get_domain_send_fn dp_get_domain_send_fn;
ced1f5
+    cache_req_dp_get_domain_recv_fn dp_get_domain_recv_fn;
ced1f5
 };
ced1f5
 
ced1f5
 extern const struct cache_req_plugin cache_req_user_by_name;
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_enum_groups.c b/src/responder/common/cache_req/plugins/cache_req_enum_groups.c
ced1f5
index 15350ca8279bc77c73bcc4abe51c97a8a37cb8c8..d302994e8903dea1e25b3da3762aa2ed783daebd 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_enum_groups.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_enum_groups.c
ced1f5
@@ -86,7 +86,10 @@ const struct cache_req_plugin cache_req_enum_groups = {
ced1f5
     .ncache_filter_fn = cache_req_enum_groups_ncache_filter,
ced1f5
     .lookup_fn = cache_req_enum_groups_lookup,
ced1f5
     .dp_send_fn = cache_req_enum_groups_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_enum_svc.c b/src/responder/common/cache_req/plugins/cache_req_enum_svc.c
ced1f5
index 72b2f1a7d2d2e02ce1a995098d1f26003444bddb..282dc1cc83b1fda91d4c4937f99598fbdd6ec625 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_enum_svc.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_enum_svc.c
ced1f5
@@ -79,7 +79,10 @@ const struct cache_req_plugin cache_req_enum_svc = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_enum_svc_lookup,
ced1f5
     .dp_send_fn = cache_req_enum_svc_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_enum_users.c b/src/responder/common/cache_req/plugins/cache_req_enum_users.c
ced1f5
index a3ddcdd45548a2fa7c367f3fb3be103c115dedb4..f83ff30fdbbaacdb3bfb605a65ce70fbd8eb3a89 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_enum_users.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_enum_users.c
ced1f5
@@ -86,7 +86,10 @@ const struct cache_req_plugin cache_req_enum_users = {
ced1f5
     .ncache_filter_fn = cache_req_enum_users_ncache_filter,
ced1f5
     .lookup_fn = cache_req_enum_users_lookup,
ced1f5
     .dp_send_fn = cache_req_enum_users_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_group_by_filter.c b/src/responder/common/cache_req/plugins/cache_req_group_by_filter.c
ced1f5
index aa89953b88313605041cce599999fc5bbc741525..009f0f88523c8c4c02a25f0f5d6a83187e0a17f8 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_group_by_filter.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_group_by_filter.c
ced1f5
@@ -134,7 +134,10 @@ const struct cache_req_plugin cache_req_group_by_filter = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_group_by_filter_lookup,
ced1f5
     .dp_send_fn = cache_req_group_by_filter_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_group_by_id.c b/src/responder/common/cache_req/plugins/cache_req_group_by_id.c
ced1f5
index 5ca64283a781318bc4e4d6920fff989c3f3919b4..70381266712d2c27c95027b54efab201c5df7690 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_group_by_id.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_group_by_id.c
ced1f5
@@ -155,7 +155,10 @@ const struct cache_req_plugin cache_req_group_by_id = {
ced1f5
     .ncache_filter_fn = cache_req_group_by_id_ncache_filter,
ced1f5
     .lookup_fn = cache_req_group_by_id_lookup,
ced1f5
     .dp_send_fn = cache_req_group_by_id_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_group_by_name.c b/src/responder/common/cache_req/plugins/cache_req_group_by_name.c
ced1f5
index 7706051818590af77da75d3e4c7f671c89170f82..3be0d5ea557bad11529b897be1d7706a8809acb1 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_group_by_name.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_group_by_name.c
ced1f5
@@ -197,7 +197,10 @@ const struct cache_req_plugin cache_req_group_by_name = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_group_by_name_lookup,
ced1f5
     .dp_send_fn = cache_req_group_by_name_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_host_by_name.c b/src/responder/common/cache_req/plugins/cache_req_host_by_name.c
ced1f5
index 56048c5e4bcadfb341f4b42d978d53484abd65d2..696d9e50d94e824d2664ed5a8fe3150b821d570e 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_host_by_name.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_host_by_name.c
ced1f5
@@ -99,7 +99,10 @@ const struct cache_req_plugin cache_req_host_by_name = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_host_by_name_lookup,
ced1f5
     .dp_send_fn = cache_req_host_by_name_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c b/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c
ced1f5
index 75ac44e1ad36238f01342eced9188d07daa50720..c5bea9d84921cc567bf794d3ba5a57fadb81695b 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c
ced1f5
@@ -212,7 +212,10 @@ const struct cache_req_plugin cache_req_initgroups_by_name = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_initgroups_by_name_lookup,
ced1f5
     .dp_send_fn = cache_req_initgroups_by_name_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_initgroups_by_upn.c b/src/responder/common/cache_req/plugins/cache_req_initgroups_by_upn.c
ced1f5
index dfb21ac1a0090a3ef9029b38f5b1e8bdda3440c6..9bd00f357c630bae4a52e356577000bd8de94013 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_initgroups_by_upn.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_initgroups_by_upn.c
ced1f5
@@ -123,5 +123,8 @@ const struct cache_req_plugin cache_req_initgroups_by_upn = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_initgroups_by_upn_lookup,
ced1f5
     .dp_send_fn = cache_req_initgroups_by_upn_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_netgroup_by_name.c b/src/responder/common/cache_req/plugins/cache_req_netgroup_by_name.c
ced1f5
index ef0775d0b8eac4d679450f436d8427cff9c04582..d370d342ec5b2c0e0e9f1f4ea90b34b59bff60b6 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_netgroup_by_name.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_netgroup_by_name.c
ced1f5
@@ -131,7 +131,10 @@ const struct cache_req_plugin cache_req_netgroup_by_name = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_netgroup_by_name_lookup,
ced1f5
     .dp_send_fn = cache_req_netgroup_by_name_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_object_by_id.c b/src/responder/common/cache_req/plugins/cache_req_object_by_id.c
ced1f5
index 339bd4f5fef827acc1aa3c123d041e426d9e4782..2af95313cb2df0f46a61519ac962074033f34a12 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_object_by_id.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_object_by_id.c
ced1f5
@@ -129,7 +129,10 @@ const struct cache_req_plugin cache_req_object_by_id = {
ced1f5
     .ncache_filter_fn = cache_req_object_by_id_ncache_filter,
ced1f5
     .lookup_fn = cache_req_object_by_id_lookup,
ced1f5
     .dp_send_fn = cache_req_object_by_id_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_object_by_name.c b/src/responder/common/cache_req/plugins/cache_req_object_by_name.c
ced1f5
index 854d0b83c420ebebcb5e0e079c707081fa313632..a740fbb8d05efb4601e8e40d2a07896ecb251d4e 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_object_by_name.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_object_by_name.c
ced1f5
@@ -207,7 +207,10 @@ const struct cache_req_plugin cache_req_object_by_name = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_object_by_name_lookup,
ced1f5
     .dp_send_fn = cache_req_object_by_name_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_object_by_sid.c b/src/responder/common/cache_req/plugins/cache_req_object_by_sid.c
ced1f5
index 039a79df7bb1ab213ce4334835e9fc18e6d0faac..1af638ff9d94ffa3bf6e418433d5c4e98acfb2b8 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_object_by_sid.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_object_by_sid.c
ced1f5
@@ -123,7 +123,10 @@ const struct cache_req_plugin cache_req_object_by_sid = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_object_by_sid_lookup,
ced1f5
     .dp_send_fn = cache_req_object_by_sid_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_svc_by_name.c b/src/responder/common/cache_req/plugins/cache_req_svc_by_name.c
ced1f5
index 4c32d9977cc06e43eed3a90e7dcf107e91efefb5..5b17051031e35c5767d27b19c922325cee4b6eac 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_svc_by_name.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_svc_by_name.c
ced1f5
@@ -155,7 +155,10 @@ const struct cache_req_plugin cache_req_svc_by_name = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_svc_by_name_lookup,
ced1f5
     .dp_send_fn = cache_req_svc_by_name_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_svc_by_port.c b/src/responder/common/cache_req/plugins/cache_req_svc_by_port.c
ced1f5
index 1e998f642c766d15d3f6fe777aa5c789629508e2..4c005df3972386fef3c5a858a2b691cb2a63fd57 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_svc_by_port.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_svc_by_port.c
ced1f5
@@ -128,7 +128,10 @@ const struct cache_req_plugin cache_req_svc_by_port = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_svc_by_port_lookup,
ced1f5
     .dp_send_fn = cache_req_svc_by_port_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_user_by_cert.c b/src/responder/common/cache_req/plugins/cache_req_user_by_cert.c
ced1f5
index 7a0c7d8ce1644f1c41b64c6903e4e20eb3c2c081..a2dc1fad28ca09eeba77c563f17518671095ab42 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_user_by_cert.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_user_by_cert.c
ced1f5
@@ -97,7 +97,10 @@ const struct cache_req_plugin cache_req_user_by_cert = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_user_by_cert_lookup,
ced1f5
     .dp_send_fn = cache_req_user_by_cert_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_user_by_filter.c b/src/responder/common/cache_req/plugins/cache_req_user_by_filter.c
ced1f5
index dd3f42e855389ecc73690e4d18c4977253b108a6..42b6e816372c51623f29e8a7e28859a9dfca640f 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_user_by_filter.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_user_by_filter.c
ced1f5
@@ -134,7 +134,10 @@ const struct cache_req_plugin cache_req_user_by_filter = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_user_by_filter_lookup,
ced1f5
     .dp_send_fn = cache_req_user_by_filter_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_user_by_id.c b/src/responder/common/cache_req/plugins/cache_req_user_by_id.c
ced1f5
index 913f9be5bcc2dfd074b52cb3b15fb6948826e831..254330e92cc801b84bfb5e308d6d90ac54507d77 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_user_by_id.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_user_by_id.c
ced1f5
@@ -155,7 +155,10 @@ const struct cache_req_plugin cache_req_user_by_id = {
ced1f5
     .ncache_filter_fn = cache_req_user_by_id_ncache_filter,
ced1f5
     .lookup_fn = cache_req_user_by_id_lookup,
ced1f5
     .dp_send_fn = cache_req_user_by_id_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_user_by_name.c b/src/responder/common/cache_req/plugins/cache_req_user_by_name.c
ced1f5
index 2e49de938d0af50089d0cf49860441c2b6ea679c..d24a2221b2a69d24d360c46c41073e19dc79036b 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_user_by_name.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_user_by_name.c
ced1f5
@@ -202,7 +202,10 @@ const struct cache_req_plugin cache_req_user_by_name = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_user_by_name_lookup,
ced1f5
     .dp_send_fn = cache_req_user_by_name_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
 
ced1f5
 struct tevent_req *
ced1f5
diff --git a/src/responder/common/cache_req/plugins/cache_req_user_by_upn.c b/src/responder/common/cache_req/plugins/cache_req_user_by_upn.c
ced1f5
index b8bcd241ed79c510aca214ad3788215ae2997d20..e08ab70ae081a5d532d7ab436687978416e7c493 100644
ced1f5
--- a/src/responder/common/cache_req/plugins/cache_req_user_by_upn.c
ced1f5
+++ b/src/responder/common/cache_req/plugins/cache_req_user_by_upn.c
ced1f5
@@ -128,5 +128,8 @@ const struct cache_req_plugin cache_req_user_by_upn = {
ced1f5
     .ncache_filter_fn = NULL,
ced1f5
     .lookup_fn = cache_req_user_by_upn_lookup,
ced1f5
     .dp_send_fn = cache_req_user_by_upn_dp_send,
ced1f5
-    .dp_recv_fn = cache_req_common_dp_recv
ced1f5
+    .dp_recv_fn = cache_req_common_dp_recv,
ced1f5
+    .dp_get_domain_check_fn = NULL,
ced1f5
+    .dp_get_domain_send_fn = NULL,
ced1f5
+    .dp_get_domain_recv_fn = NULL,
ced1f5
 };
ced1f5
-- 
ced1f5
2.14.3
ced1f5