From 8be5e4497e5008f7807178acdfcbf97365ec4e73 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 23 Apr 2012 08:05:07 -0400 Subject: LDAP: Add helper function to map IDs This function will also auto-create a new ID map if the domain has not been seen previously. --- src/providers/ldap/sdap_async_initgroups.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'src/providers/ldap/sdap_async_initgroups.c') diff --git a/src/providers/ldap/sdap_async_initgroups.c b/src/providers/ldap/sdap_async_initgroups.c index ff9905f3..0a864c7d 100644 --- a/src/providers/ldap/sdap_async_initgroups.c +++ b/src/providers/ldap/sdap_async_initgroups.c @@ -46,7 +46,6 @@ static errno_t sdap_add_incomplete_groups(struct sysdb_ctx *sysdb, bool posix; time_t now; char *sid_str; - enum idmap_error_code err; bool use_id_mapping = dp_opt_get_bool(opts->basic, SDAP_ID_MAPPING); /* There are no groups in LDAP but we should add user to groups ?? */ @@ -124,10 +123,9 @@ static errno_t sdap_add_incomplete_groups(struct sysdb_ctx *sysdb, name, sid_str)); /* Convert the SID into a UNIX group ID */ - err = sss_idmap_sid_to_unix(opts->idmap_ctx->map, - sid_str, - (uint32_t *)&gid); - if (err != IDMAP_SUCCESS && err != IDMAP_NO_DOMAIN) { + ret = sdap_idmap_sid_to_unix(opts->idmap_ctx, sid_str, + &gid); + if (ret != EOK) { DEBUG(SSSDBG_MINOR_FAILURE, ("Could not convert objectSID [%s] to a UNIX ID\n", sid_str)); @@ -2719,7 +2717,6 @@ static void sdap_get_initgr_done(struct tevent_req *subreq) char *sid_str; char *dom_sid_str; char *group_sid_str; - enum idmap_error_code err; struct sdap_options *opts = state->opts; bool use_id_mapping = dp_opt_get_bool(opts->basic, SDAP_ID_MAPPING); @@ -2810,16 +2807,8 @@ static void sdap_get_initgr_done(struct tevent_req *subreq) } /* Convert the SID into a UNIX group ID */ - err = sss_idmap_sid_to_unix(opts->idmap_ctx->map, - sid_str, - (uint32_t *)&primary_gid); - if (err != IDMAP_SUCCESS) { - DEBUG(SSSDBG_MINOR_FAILURE, - ("Could not convert objectSID [%s] to a UNIX ID\n", - sid_str)); - ret = EIO; - goto fail; - } + ret = sdap_idmap_sid_to_unix(opts->idmap_ctx, sid_str, &primary_gid); + if (ret != EOK) goto fail; } else { ret = sysdb_attrs_get_uint32_t(state->orig_user, SYSDB_GIDNUM, &primary_gid); -- cgit