Also adds some more debugging and fixes a code style issue.

https://fedorahosted.org/sssd/ticket/1182
From 7f91722ff7ca0e3a3cc1bcc70249e20530500414 Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <[email protected]>
Date: Thu, 9 Feb 2012 11:30:03 +0100
Subject: [PATCH] Fix group enumeration

Also adds some more debugging and fixes a code style issue.

https://fedorahosted.org/sssd/ticket/1182
---
 src/responder/common/responder_dp.c |    9 +++++++--
 src/responder/nss/nsssrv_cmd.c      |    2 ++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/responder/common/responder_dp.c 
b/src/responder/common/responder_dp.c
index 
044aa385a4796fdde6e9105092e8cfb8af275835..a116fedd80388cedb5deeab0326ab445601dcea9
 100644
--- a/src/responder/common/responder_dp.c
+++ b/src/responder/common/responder_dp.c
@@ -70,6 +70,7 @@ static int sss_dp_req_destructor(void *ptr)
     struct sss_dp_callback *cb;
     struct sss_dp_req *sdp_req = talloc_get_type(ptr, struct sss_dp_req);
     struct sss_dp_req_state *state;
+    int hret;
 
     /* Cancel Dbus pending reply if still pending */
     if (sdp_req->pending_reply) {
@@ -105,7 +106,8 @@ static int sss_dp_req_destructor(void *ptr)
     }
 
     /* Destroy the hash entry */
-    int hret = hash_delete(sdp_req->rctx->dp_request_table, sdp_req->key);
+    DEBUG(SSSDBG_TRACE_FUNC, ("Deleting request: [%s]\n", sdp_req->key->str));
+    hret = hash_delete(sdp_req->rctx->dp_request_table, sdp_req->key);
     if (hret != HASH_SUCCESS) {
         /* This should never happen */
         DEBUG(SSSDBG_TRACE_INTERNAL,
@@ -259,12 +261,14 @@ sss_dp_issue_request(TALLOC_CTX *mem_ctx, struct resp_ctx 
*rctx,
     }
 
     key->type = HASH_KEY_STRING;
-    key->str = talloc_asprintf(key, "%p:%s\n", msg_create, strkey);
+    key->str = talloc_asprintf(key, "%p:%s", msg_create, strkey);
     if (!key->str) {
         ret = ENOMEM;
         goto fail;
     }
 
+    DEBUG(SSSDBG_TRACE_FUNC, ("Issuing request for [%s]\n", key->str));
+
     /* Check the hash for existing references to this request */
     hret = hash_lookup(rctx->dp_request_table, key, &value);
     switch (hret) {
@@ -667,6 +671,7 @@ sss_dp_internal_get_send(struct resp_ctx *rctx,
     value.type = HASH_VALUE_PTR;
     value.ptr = state->sdp_req;
 
+    DEBUG(SSSDBG_TRACE_FUNC, ("Entering request [%s]\n", key->str));
     hret = hash_enter(rctx->dp_request_table, key, &value);
     if (hret != HASH_SUCCESS) {
         DEBUG(SSSDBG_CRIT_FAILURE,
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 
e368e3ac6a7d4ad45ab1bcc4daaaefb849b58047..1c9160b7ab824654133a3d34be29bcde8a4a7a17
 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -2625,6 +2625,8 @@ static errno_t nss_cmd_setgrent_step(struct 
setent_step_ctx *step_ctx)
         if (dctx->check_provider) {
             step_ctx->returned_to_mainloop = true;
             /* Only do this once per provider */
+            dctx->check_provider = false;
+
             dpreq = sss_dp_get_account_send(step_ctx, rctx, dctx->domain, true,
                                           SSS_DP_USER, NULL, 0, NULL);
             if (!dpreq) {
-- 
1.7.7.6

_______________________________________________
sssd-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to