>From 7186082bb82e5e6170974b4bdcb60e9e5923ba34 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Tue, 24 Apr 2012 23:52:13 +0200 Subject: [PATCH] NSS: Only return data from initgroups once Do not let nss_cmd_initgroups_search() return data itself, but let the caller return data. This is more intuitive and more consistent with the rest of the nss_cmd_*_search() functions. Also fixes a typo - nss_cmd_initgroups_cb used to call getpw_send_reply instead of initgr_send_reply. --- src/responder/nss/nsssrv_cmd.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index 85d83e32f83b411e47bee97eb829abe35c9c19d1..2c95645791821b7a08672474930adc041a70b23d 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -3181,8 +3181,7 @@ static int nss_cmd_initgroups_search(struct nss_dom_ctx *dctx) } DEBUG(6, ("Initgroups for [%s@%s] completed\n", name, dom->name)); - - return nss_cmd_initgr_send_reply(dctx); + return EOK; } DEBUG(SSSDBG_MINOR_FAILURE, @@ -3222,6 +3221,10 @@ static void nss_cmd_initgroups_dp_callback(uint16_t err_maj, uint32_t err_min, /* ok the backend returned, search to see if we have updated results */ ret = nss_cmd_initgroups_search(dctx); + if (ret == EOK) { + /* we have results to return */ + ret = nss_cmd_initgr_send_reply(dctx); + } done: ret = nss_cmd_done(cmdctx, ret); @@ -3318,6 +3321,10 @@ static int nss_cmd_initgroups(struct cli_ctx *cctx) /* ok, find it ! */ ret = nss_cmd_initgroups_search(dctx); + if (ret == EOK) { + /* we have results to return */ + ret = nss_cmd_initgr_send_reply(dctx); + } done: return nss_cmd_done(cmdctx, ret); @@ -3350,7 +3357,7 @@ static void nss_cmd_initgroups_cb(struct tevent_req *req) ret = nss_cmd_initgroups_search(dctx); if (ret == EOK) { /* we have results to return */ - ret = nss_cmd_getpw_send_reply(dctx, false); + ret = nss_cmd_initgr_send_reply(dctx); } done: -- 1.7.10