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