diff options
author | Simo Sorce <ssorce@redhat.com> | 2009-11-04 17:04:49 -0500 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2009-11-06 17:26:09 -0500 |
commit | 4bca21e23e0b0e2df610d7edb4b205698e8224c0 (patch) | |
tree | 72cb99d54107064d3bedb5e6f0b4da6f35fa54fd /server/providers/ldap/sdap_async.c | |
parent | 213b08986ee7ad623320761c51f9791b95d68679 (diff) | |
download | sssd-4bca21e23e0b0e2df610d7edb4b205698e8224c0.tar.gz sssd-4bca21e23e0b0e2df610d7edb4b205698e8224c0.tar.xz sssd-4bca21e23e0b0e2df610d7edb4b205698e8224c0.zip |
Unify parse routines, use maps in generic searches
This remove redundant code and also allows the generic search to be used to use
maps to convert attributes.
Diffstat (limited to 'server/providers/ldap/sdap_async.c')
-rw-r--r-- | server/providers/ldap/sdap_async.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/server/providers/ldap/sdap_async.c b/server/providers/ldap/sdap_async.c index 6aaad9f94..d086e6936 100644 --- a/server/providers/ldap/sdap_async.c +++ b/server/providers/ldap/sdap_async.c @@ -3287,7 +3287,7 @@ struct tevent_req *sdap_get_rootdse_send(TALLOC_CTX *memctx, subreq = sdap_get_generic_send(state, ev, opts, sh, "", LDAP_SCOPE_BASE, - "(objectclass=*)", NULL); + "(objectclass=*)", NULL, NULL, 0); if (!subreq) { talloc_zfree(req); return NULL; @@ -3648,6 +3648,8 @@ struct sdap_get_generic_state { int scope; const char *filter; const char **attrs; + struct sdap_attr_map *map; + int map_num_attrs; struct sdap_op *op; @@ -3670,7 +3672,9 @@ struct tevent_req *sdap_get_generic_send(TALLOC_CTX *memctx, const char *search_base, int scope, const char *filter, - const char **attrs) + const char **attrs, + struct sdap_attr_map *map, + int map_num_attrs) { struct tevent_req *req = NULL; struct sdap_get_generic_state *state = NULL; @@ -3688,6 +3692,8 @@ struct tevent_req *sdap_get_generic_send(TALLOC_CTX *memctx, state->scope = scope; state->filter = filter; state->attrs = attrs; + state->map = map; + state->map_num_attrs = map_num_attrs; state->op = NULL; state->reply_max = 0; state->reply_count = 0; @@ -3762,7 +3768,9 @@ static void sdap_get_generic_done(struct sdap_op *op, break; case LDAP_RES_SEARCH_ENTRY: - ret = sdap_parse_generic_entry(state, state->sh, reply, &attrs); + ret = sdap_parse_entry(state, state->sh, reply, + state->map, state->map_num_attrs, + &attrs, NULL); if (ret != EOK) { DEBUG(1, ("sdap_parse_generic_entry failed.\n")); tevent_req_error(req, ENOMEM); |