diff options
author | Pavel Březina <pbrezina@redhat.com> | 2015-01-23 14:03:07 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-03-13 09:56:03 +0100 |
commit | 665bc06b1a39c64227de74ecbba3db1c4c104ccf (patch) | |
tree | 8b64a9d620951e29800894086c5355c2dfad8702 /src/responder/ifp | |
parent | bbc34d5a6e84d6c337bd89a22d33e365eb466226 (diff) | |
download | sssd-665bc06b1a39c64227de74ecbba3db1c4c104ccf.tar.gz sssd-665bc06b1a39c64227de74ecbba3db1c4c104ccf.tar.xz sssd-665bc06b1a39c64227de74ecbba3db1c4c104ccf.zip |
cache_req: preparations for different input type
Currently cache_req takes only user name as an input parameter. However,
this is not enough since we will need also UID and GID in the future.
This patch creates a structure to hold input parameters so it can be
simply extended to support other input types.
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/responder/ifp')
-rw-r--r-- | src/responder/ifp/ifpsrv_cmd.c | 24 |
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; |