144 lines
6.3 KiB
Diff
144 lines
6.3 KiB
Diff
|
From 4c714a37865979f03c56d82d5984558a63c392da Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrezina@redhat.com>
|
||
|
Date: Thu, 19 Feb 2015 12:04:09 +0100
|
||
|
Subject: [PATCH 18/99] be_refresh: add sdap_refresh_init
|
||
|
|
||
|
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
|
||
|
(cherry picked from commit 17531a398cc9084036cb08d69fe876a8f12707bb)
|
||
|
---
|
||
|
src/providers/ad/ad_init.c | 7 ++-----
|
||
|
src/providers/ipa/ipa_init.c | 7 ++-----
|
||
|
src/providers/ldap/ldap_common.h | 10 ++--------
|
||
|
src/providers/ldap/ldap_init.c | 7 ++-----
|
||
|
src/providers/ldap/sdap_refresh.c | 32 +++++++++++++++++++++++++-------
|
||
|
5 files changed, 33 insertions(+), 30 deletions(-)
|
||
|
|
||
|
diff --git a/src/providers/ad/ad_init.c b/src/providers/ad/ad_init.c
|
||
|
index 2636b1aba6f005325416e2500b0fd9fb24081260..3d12f382c613883a8f88442c7b1602470deb105d 100644
|
||
|
--- a/src/providers/ad/ad_init.c
|
||
|
+++ b/src/providers/ad/ad_init.c
|
||
|
@@ -260,12 +260,9 @@ sssm_ad_id_init(struct be_ctx *bectx,
|
||
|
}
|
||
|
|
||
|
/* setup periodical refresh of expired records */
|
||
|
- ret = be_refresh_add_cb(bectx->refresh_ctx, BE_REFRESH_TYPE_NETGROUPS,
|
||
|
- sdap_refresh_netgroups_send,
|
||
|
- sdap_refresh_netgroups_recv,
|
||
|
- ad_ctx->sdap_id_ctx);
|
||
|
+ ret = sdap_refresh_init(bectx->refresh_ctx, ad_ctx->sdap_id_ctx);
|
||
|
if (ret != EOK && ret != EEXIST) {
|
||
|
- DEBUG(SSSDBG_MINOR_FAILURE, "Periodical refresh of netgroups "
|
||
|
+ DEBUG(SSSDBG_MINOR_FAILURE, "Periodical refresh "
|
||
|
"will not work [%d]: %s\n", ret, strerror(ret));
|
||
|
}
|
||
|
|
||
|
diff --git a/src/providers/ipa/ipa_init.c b/src/providers/ipa/ipa_init.c
|
||
|
index 160d15cac42a1c1083722d656d369442e6ee4dd8..4b26e8baad4d0592729aec9a0b188ae89973fa98 100644
|
||
|
--- a/src/providers/ipa/ipa_init.c
|
||
|
+++ b/src/providers/ipa/ipa_init.c
|
||
|
@@ -354,12 +354,9 @@ int sssm_ipa_id_init(struct be_ctx *bectx,
|
||
|
}
|
||
|
|
||
|
/* setup periodical refresh of expired records */
|
||
|
- ret = be_refresh_add_cb(bectx->refresh_ctx, BE_REFRESH_TYPE_NETGROUPS,
|
||
|
- sdap_refresh_netgroups_send,
|
||
|
- sdap_refresh_netgroups_recv,
|
||
|
- sdap_ctx);
|
||
|
+ ret = sdap_refresh_init(bectx->refresh_ctx, sdap_ctx);
|
||
|
if (ret != EOK && ret != EEXIST) {
|
||
|
- DEBUG(SSSDBG_MINOR_FAILURE, "Periodical refresh of netgroups "
|
||
|
+ DEBUG(SSSDBG_MINOR_FAILURE, "Periodical refresh "
|
||
|
"will not work [%d]: %s\n", ret, strerror(ret));
|
||
|
}
|
||
|
|
||
|
diff --git a/src/providers/ldap/ldap_common.h b/src/providers/ldap/ldap_common.h
|
||
|
index f8b4e014223b33da84f436a2be853139059f40e7..bf69489a79e903a98878edb53d372d2242df2b0f 100644
|
||
|
--- a/src/providers/ldap/ldap_common.h
|
||
|
+++ b/src/providers/ldap/ldap_common.h
|
||
|
@@ -324,13 +324,7 @@ struct sdap_id_ctx *
|
||
|
sdap_id_ctx_new(TALLOC_CTX *mem_ctx, struct be_ctx *bectx,
|
||
|
struct sdap_service *sdap_service);
|
||
|
|
||
|
-struct tevent_req *sdap_refresh_netgroups_send(TALLOC_CTX *mem_ctx,
|
||
|
- struct tevent_context *ev,
|
||
|
- struct be_ctx *be_ctx,
|
||
|
- struct sss_domain_info *domain,
|
||
|
- char **names,
|
||
|
- void *pvt);
|
||
|
-
|
||
|
-errno_t sdap_refresh_netgroups_recv(struct tevent_req *req);
|
||
|
+errno_t sdap_refresh_init(struct be_refresh_ctx *refresh_ctx,
|
||
|
+ struct sdap_id_ctx *id_ctx);
|
||
|
|
||
|
#endif /* _LDAP_COMMON_H_ */
|
||
|
diff --git a/src/providers/ldap/ldap_init.c b/src/providers/ldap/ldap_init.c
|
||
|
index cebd548a4f787c2ddda56a1c5e74a60fa78d83ec..247e20ef766ae595d5c63d3a765a8a7c1912f8d9 100644
|
||
|
--- a/src/providers/ldap/ldap_init.c
|
||
|
+++ b/src/providers/ldap/ldap_init.c
|
||
|
@@ -179,12 +179,9 @@ static int ldap_id_init_internal(struct be_ctx *bectx,
|
||
|
}
|
||
|
|
||
|
/* setup periodical refresh of expired records */
|
||
|
- ret = be_refresh_add_cb(bectx->refresh_ctx, BE_REFRESH_TYPE_NETGROUPS,
|
||
|
- sdap_refresh_netgroups_send,
|
||
|
- sdap_refresh_netgroups_recv,
|
||
|
- ctx);
|
||
|
+ ret = sdap_refresh_init(bectx->refresh_ctx, ctx);
|
||
|
if (ret != EOK && ret != EEXIST) {
|
||
|
- DEBUG(SSSDBG_MINOR_FAILURE, "Periodical refresh of netgroups "
|
||
|
+ DEBUG(SSSDBG_MINOR_FAILURE, "Periodical refresh "
|
||
|
"will not work [%d]: %s\n", ret, strerror(ret));
|
||
|
}
|
||
|
|
||
|
diff --git a/src/providers/ldap/sdap_refresh.c b/src/providers/ldap/sdap_refresh.c
|
||
|
index 29055359fc7855f6ad84bf55ea334d0932c0a8d1..e300e28b68aa87957a607259b6439ceca0796e7e 100644
|
||
|
--- a/src/providers/ldap/sdap_refresh.c
|
||
|
+++ b/src/providers/ldap/sdap_refresh.c
|
||
|
@@ -199,18 +199,36 @@ static errno_t sdap_refresh_recv(struct tevent_req *req)
|
||
|
return EOK;
|
||
|
}
|
||
|
|
||
|
-struct tevent_req *sdap_refresh_netgroups_send(TALLOC_CTX *mem_ctx,
|
||
|
- struct tevent_context *ev,
|
||
|
- struct be_ctx *be_ctx,
|
||
|
- struct sss_domain_info *domain,
|
||
|
- char **names,
|
||
|
- void *pvt)
|
||
|
+static struct tevent_req *
|
||
|
+sdap_refresh_netgroups_send(TALLOC_CTX *mem_ctx,
|
||
|
+ struct tevent_context *ev,
|
||
|
+ struct be_ctx *be_ctx,
|
||
|
+ struct sss_domain_info *domain,
|
||
|
+ char **names,
|
||
|
+ void *pvt)
|
||
|
{
|
||
|
return sdap_refresh_send(mem_ctx, ev, be_ctx, domain,
|
||
|
BE_REQ_NETGROUP, names, pvt);
|
||
|
}
|
||
|
|
||
|
-errno_t sdap_refresh_netgroups_recv(struct tevent_req *req)
|
||
|
+static errno_t sdap_refresh_netgroups_recv(struct tevent_req *req)
|
||
|
{
|
||
|
return sdap_refresh_recv(req);
|
||
|
}
|
||
|
+
|
||
|
+errno_t sdap_refresh_init(struct be_refresh_ctx *refresh_ctx,
|
||
|
+ struct sdap_id_ctx *id_ctx)
|
||
|
+{
|
||
|
+ errno_t ret;
|
||
|
+
|
||
|
+ ret = be_refresh_add_cb(refresh_ctx, BE_REFRESH_TYPE_NETGROUPS,
|
||
|
+ sdap_refresh_netgroups_send,
|
||
|
+ sdap_refresh_netgroups_recv,
|
||
|
+ id_ctx);
|
||
|
+ if (ret != EOK && ret != EEXIST) {
|
||
|
+ DEBUG(SSSDBG_MINOR_FAILURE, "Periodical refresh of netgroups "
|
||
|
+ "will not work [%d]: %s\n", ret, strerror(ret));
|
||
|
+ }
|
||
|
+
|
||
|
+ return ret;
|
||
|
+}
|
||
|
--
|
||
|
2.4.0
|
||
|
|