Blame SOURCES/0032-BE-Change-be_refresh_ctx_init-to-return-errno-and-se.patch

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