|
|
8d3578 |
From d5808eab7a3ab48318d26ae633c8650bab761c84 Mon Sep 17 00:00:00 2001
|
|
|
8d3578 |
From: Jakub Hrozek <jhrozek@redhat.com>
|
|
|
8d3578 |
Date: Tue, 21 May 2019 12:07:34 +0200
|
|
|
8d3578 |
Subject: [PATCH 51/64] BE: Change be_refresh_ctx_init to return errno and set
|
|
|
8d3578 |
be_ctx->refresh_ctx
|
|
|
8d3578 |
|
|
|
8d3578 |
It is a bit odd that a caller to a be_ function would set a property of
|
|
|
8d3578 |
be_ctx. IMO it is cleaner if the function has a side-effect and sets the
|
|
|
8d3578 |
property internally and rather returns errno.
|
|
|
8d3578 |
|
|
|
8d3578 |
Related:
|
|
|
8d3578 |
https://pagure.io/SSSD/sssd/issue/4012
|
|
|
8d3578 |
|
|
|
8d3578 |
Reviewed-by: Sumit Bose <sbose@redhat.com>
|
|
|
8d3578 |
(cherry picked from commit 41305ef5a0ef2f4796e322190ffcc12331151643)
|
|
|
8d3578 |
|
|
|
8d3578 |
Reviewed-by: Sumit Bose <sbose@redhat.com>
|
|
|
8d3578 |
---
|
|
|
8d3578 |
src/providers/be_refresh.c | 13 +++++++------
|
|
|
8d3578 |
src/providers/be_refresh.h | 4 ++--
|
|
|
8d3578 |
src/providers/ldap/sdap_refresh.c | 4 ++--
|
|
|
8d3578 |
3 files changed, 11 insertions(+), 10 deletions(-)
|
|
|
8d3578 |
|
|
|
8d3578 |
diff --git a/src/providers/be_refresh.c b/src/providers/be_refresh.c
|
|
|
8d3578 |
index 66cc4cf98..8a6e1ba58 100644
|
|
|
8d3578 |
--- a/src/providers/be_refresh.c
|
|
|
8d3578 |
+++ b/src/providers/be_refresh.c
|
|
|
8d3578 |
@@ -136,8 +136,8 @@ struct be_refresh_ctx {
|
|
|
8d3578 |
struct be_refresh_cb callbacks[BE_REFRESH_TYPE_SENTINEL];
|
|
|
8d3578 |
};
|
|
|
8d3578 |
|
|
|
8d3578 |
-struct be_refresh_ctx *be_refresh_ctx_init(struct be_ctx *be_ctx,
|
|
|
8d3578 |
- const char *attr_name)
|
|
|
8d3578 |
+errno_t be_refresh_ctx_init(struct be_ctx *be_ctx,
|
|
|
8d3578 |
+ const char *attr_name)
|
|
|
8d3578 |
{
|
|
|
8d3578 |
struct be_refresh_ctx *ctx = NULL;
|
|
|
8d3578 |
uint32_t refresh_interval;
|
|
|
8d3578 |
@@ -145,7 +145,7 @@ struct be_refresh_ctx *be_refresh_ctx_init(struct be_ctx *be_ctx,
|
|
|
8d3578 |
|
|
|
8d3578 |
ctx = talloc_zero(be_ctx, struct be_refresh_ctx);
|
|
|
8d3578 |
if (ctx == NULL) {
|
|
|
8d3578 |
- return NULL;
|
|
|
8d3578 |
+ return ENOMEM;
|
|
|
8d3578 |
}
|
|
|
8d3578 |
|
|
|
8d3578 |
ctx->attr_name = attr_name;
|
|
|
8d3578 |
@@ -158,17 +158,18 @@ struct be_refresh_ctx *be_refresh_ctx_init(struct be_ctx *be_ctx,
|
|
|
8d3578 |
ret = be_ptask_create(be_ctx, be_ctx, refresh_interval, 30, 5, 0,
|
|
|
8d3578 |
refresh_interval, BE_PTASK_OFFLINE_SKIP, 0,
|
|
|
8d3578 |
be_refresh_send, be_refresh_recv,
|
|
|
8d3578 |
- be_ctx->refresh_ctx, "Refresh Records", NULL);
|
|
|
8d3578 |
+ ctx, "Refresh Records", NULL);
|
|
|
8d3578 |
if (ret != EOK) {
|
|
|
8d3578 |
DEBUG(SSSDBG_FATAL_FAILURE,
|
|
|
8d3578 |
"Unable to initialize refresh periodic task [%d]: %s\n",
|
|
|
8d3578 |
ret, sss_strerror(ret));
|
|
|
8d3578 |
talloc_free(ctx);
|
|
|
8d3578 |
- return NULL;
|
|
|
8d3578 |
+ return ret;
|
|
|
8d3578 |
}
|
|
|
8d3578 |
}
|
|
|
8d3578 |
|
|
|
8d3578 |
- return ctx;
|
|
|
8d3578 |
+ be_ctx->refresh_ctx = ctx;
|
|
|
8d3578 |
+ return EOK;
|
|
|
8d3578 |
}
|
|
|
8d3578 |
|
|
|
8d3578 |
errno_t be_refresh_add_cb(struct be_refresh_ctx *ctx,
|
|
|
8d3578 |
diff --git a/src/providers/be_refresh.h b/src/providers/be_refresh.h
|
|
|
8d3578 |
index 8c7b1d0ba..980ac7d06 100644
|
|
|
8d3578 |
--- a/src/providers/be_refresh.h
|
|
|
8d3578 |
+++ b/src/providers/be_refresh.h
|
|
|
8d3578 |
@@ -52,8 +52,8 @@ enum be_refresh_type {
|
|
|
8d3578 |
|
|
|
8d3578 |
struct be_refresh_ctx;
|
|
|
8d3578 |
|
|
|
8d3578 |
-struct be_refresh_ctx *be_refresh_ctx_init(struct be_ctx *be_ctx,
|
|
|
8d3578 |
- const char *attr_name);
|
|
|
8d3578 |
+errno_t be_refresh_ctx_init(struct be_ctx *be_ctx,
|
|
|
8d3578 |
+ const char *attr_name);
|
|
|
8d3578 |
|
|
|
8d3578 |
errno_t be_refresh_add_cb(struct be_refresh_ctx *ctx,
|
|
|
8d3578 |
enum be_refresh_type type,
|
|
|
8d3578 |
diff --git a/src/providers/ldap/sdap_refresh.c b/src/providers/ldap/sdap_refresh.c
|
|
|
8d3578 |
index ed04da36a..baa7fa59f 100644
|
|
|
8d3578 |
--- a/src/providers/ldap/sdap_refresh.c
|
|
|
8d3578 |
+++ b/src/providers/ldap/sdap_refresh.c
|
|
|
8d3578 |
@@ -260,8 +260,8 @@ errno_t sdap_refresh_init(struct be_ctx *be_ctx,
|
|
|
8d3578 |
{
|
|
|
8d3578 |
errno_t ret;
|
|
|
8d3578 |
|
|
|
8d3578 |
- be_ctx->refresh_ctx = be_refresh_ctx_init(be_ctx, SYSDB_NAME);
|
|
|
8d3578 |
- if (be_ctx->refresh_ctx == NULL) {
|
|
|
8d3578 |
+ ret = be_refresh_ctx_init(be_ctx, SYSDB_NAME);
|
|
|
8d3578 |
+ if (ret != EOK) {
|
|
|
8d3578 |
DEBUG(SSSDBG_FATAL_FAILURE, "Unable to initialize refresh_ctx\n");
|
|
|
8d3578 |
return ENOMEM;
|
|
|
8d3578 |
}
|
|
|
8d3578 |
--
|
|
|
8d3578 |
2.20.1
|
|
|
8d3578 |
|