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

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