URL: https://github.com/SSSD/sssd/pull/5941
Author: alexey-tikhonov
 Title: #5941: Minor updates in `IPA: get_object_from_cache()`
Action: synchronized

To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/5941/head:pr5941
git checkout pr5941
From ab69a01fc93ec81753ed771b1886e87e674c3280 Mon Sep 17 00:00:00 2001
From: Alexey Tikhonov <atikh...@redhat.com>
Date: Tue, 4 Jan 2022 19:22:51 +0100
Subject: [PATCH 1/2] IPA: get_object_from_cache(): don't touch output arg
 `_msg` in case object wasn't found (i.e. ENOENT returned)

---
 src/providers/ipa/ipa_subdomains_id.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/providers/ipa/ipa_subdomains_id.c b/src/providers/ipa/ipa_subdomains_id.c
index 445b9ba2ff..901382084a 100644
--- a/src/providers/ipa/ipa_subdomains_id.c
+++ b/src/providers/ipa/ipa_subdomains_id.c
@@ -1260,10 +1260,14 @@ errno_t get_object_from_cache(TALLOC_CTX *mem_ctx,
         goto done;
     }
 
-    if (ret != EOK && ret != ENOENT) {
-        DEBUG(SSSDBG_OP_FAILURE,
-              "Failed to make request to our cache: [%d]: [%s]\n",
-               ret, sss_strerror(ret));
+    if (ret != EOK) {
+        if (ret != ENOENT) {
+            DEBUG(SSSDBG_OP_FAILURE,
+                  "Failed to make request to our cache: [%d]: [%s]\n",
+                   ret, sss_strerror(ret));
+        } else {
+            DEBUG(SSSDBG_FUNC_DATA, "Object wasn't found in cache");
+        }
         goto done;
     }
 

From 704a7cc4bb83f600bd45973dbdafb2e89c35c635 Mon Sep 17 00:00:00 2001
From: Alexey Tikhonov <atikh...@redhat.com>
Date: Tue, 4 Jan 2022 19:48:43 +0100
Subject: [PATCH 2/2] IPA: get_object_from_cache():  - reduce log level in case
 object wasn't found in cache  - slightly reduce code duplication

---
 src/providers/ipa/ipa_subdomains_id.c | 54 +++++++++------------------
 1 file changed, 17 insertions(+), 37 deletions(-)

diff --git a/src/providers/ipa/ipa_subdomains_id.c b/src/providers/ipa/ipa_subdomains_id.c
index 901382084a..ccf41db600 100644
--- a/src/providers/ipa/ipa_subdomains_id.c
+++ b/src/providers/ipa/ipa_subdomains_id.c
@@ -1138,50 +1138,29 @@ errno_t get_object_from_cache(TALLOC_CTX *mem_ctx,
     if (ar->filter_type == BE_FILTER_SECID) {
         ret = sysdb_search_object_by_sid(mem_ctx, dom, ar->filter_value, attrs,
                                          &res);
-        if (ret != EOK) {
-            DEBUG(SSSDBG_OP_FAILURE,
-                  "Failed to make request to our cache: [%d]: [%s]\n",
-                   ret, sss_strerror(ret));
-            goto done;
+        if (ret == EOK) {
+            *_msg = res->msgs[0];
         }
-
-        *_msg = res->msgs[0];
-
-        ret = EOK;
         goto done;
     } else if (ar->filter_type == BE_FILTER_UUID) {
         ret = sysdb_search_object_by_uuid(mem_ctx, dom, ar->filter_value, attrs,
                                           &res);
-        if (ret != EOK) {
-            DEBUG(SSSDBG_OP_FAILURE,
-                  "Failed to make request to our cache: [%d]: [%s]\n",
-                   ret, sss_strerror(ret));
-            goto done;
+        if (ret == EOK) {
+            *_msg = res->msgs[0];
         }
-
-        *_msg = res->msgs[0];
-
-        ret = EOK;
         goto done;
     } else if (ar->filter_type == BE_FILTER_CERT) {
         ret = sysdb_search_object_by_cert(mem_ctx, dom, ar->filter_value, attrs,
                                           &res);
-        if (ret != EOK) {
-            DEBUG(SSSDBG_OP_FAILURE,
-                  "Failed to make request to our cache: [%d]: [%s]\n",
-                   ret, sss_strerror(ret));
-            goto done;
-        }
-        if (res->count != 1) {
-            DEBUG(SSSDBG_OP_FAILURE,
-                  "More than one result found in our cache\n");
-            ret = EINVAL;
-            goto done;
+        if (ret == EOK) {
+            if (res->count != 1) {
+                DEBUG(SSSDBG_OP_FAILURE,
+                      "More than one result found in our cache\n");
+                ret = EINVAL;
+            } else {
+                *_msg = res->msgs[0];
+            }
         }
-
-        *_msg = res->msgs[0];
-
-        ret = EOK;
         goto done;
     } else if (ar->filter_type == BE_FILTER_IDNUM) {
         id = strtouint32(ar->filter_value, &endptr, 10);
@@ -1260,6 +1239,11 @@ errno_t get_object_from_cache(TALLOC_CTX *mem_ctx,
         goto done;
     }
 
+    if (ret == EOK) {
+        *_msg = msg;
+    }
+
+done:
     if (ret != EOK) {
         if (ret != ENOENT) {
             DEBUG(SSSDBG_OP_FAILURE,
@@ -1268,12 +1252,8 @@ errno_t get_object_from_cache(TALLOC_CTX *mem_ctx,
         } else {
             DEBUG(SSSDBG_FUNC_DATA, "Object wasn't found in cache");
         }
-        goto done;
     }
 
-    *_msg = msg;
-
-done:
     return ret;
 }
 
_______________________________________________
sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org
To unsubscribe send an email to sssd-devel-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/sssd-devel@lists.fedorahosted.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to