summaryrefslogtreecommitdiffstats
path: root/src/responder/ifp/ifpsrv_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/responder/ifp/ifpsrv_cmd.c')
-rw-r--r--src/responder/ifp/ifpsrv_cmd.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/responder/ifp/ifpsrv_cmd.c b/src/responder/ifp/ifpsrv_cmd.c
index 11a7fb26c..b57a33a8d 100644
--- a/src/responder/ifp/ifpsrv_cmd.c
+++ b/src/responder/ifp/ifpsrv_cmd.c
@@ -477,6 +477,7 @@ static void
ifp_user_get_attr_lookup(struct tevent_req *subreq)
{
struct ifp_user_get_attr_state *state = NULL;
+ struct cache_req_input *input = NULL;
struct tevent_req *req = NULL;
errno_t ret;
@@ -490,9 +491,30 @@ ifp_user_get_attr_lookup(struct tevent_req *subreq)
return;
}
+ switch (state->search_type) {
+ case SSS_DP_USER:
+ input = cache_req_input_create(state, CACHE_REQ_USER_BY_NAME,
+ state->name);
+ break;
+ case SSS_DP_INITGROUPS:
+ input = cache_req_input_create(state, CACHE_REQ_INITGROUPS,
+ state->name);
+ break;
+ default:
+ DEBUG(SSSDBG_CRIT_FAILURE, "Unsupported search type [%d]!\n",
+ state->search_type);
+ tevent_req_error(req, ERR_INTERNAL);
+ return;
+ }
+
+ if (input == NULL) {
+ tevent_req_error(req, ENOMEM);
+ return;
+ }
+
subreq = cache_req_send(state, state->rctx->ev, state->rctx,
state->ncache, state->neg_timeout, 0,
- state->search_type, state->domname, state->name);
+ state->domname, input);
if (subreq == NULL) {
tevent_req_error(req, ENOMEM);
return;