diff options
author | Michal Židek <mzidek@redhat.com> | 2015-10-07 19:31:12 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2016-01-13 11:28:44 +0100 |
commit | 31642de7cab2952ead08479955ce2768d34283c3 (patch) | |
tree | 39be84406fa5dd6f480f5a92b34b16ff3a02db0a /src/util/usertools.c | |
parent | 4af587e90c866f27ddea8e479925db7563d4392c (diff) | |
download | sssd-31642de7cab2952ead08479955ce2768d34283c3.tar.gz sssd-31642de7cab2952ead08479955ce2768d34283c3.tar.xz sssd-31642de7cab2952ead08479955ce2768d34283c3.zip |
util: sss_ioname2internal
Diffstat (limited to 'src/util/usertools.c')
-rw-r--r-- | src/util/usertools.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/util/usertools.c b/src/util/usertools.c index 9be4f81ec..81b729d5c 100644 --- a/src/util/usertools.c +++ b/src/util/usertools.c @@ -794,3 +794,38 @@ done: talloc_free(tmp_ctx); return fqname; } + +char *sss_ioname2internal(TALLOC_CTX *mem_ctx, + struct sss_domain_info *dom, + char *ioname) +{ + char *shortname; + char *domname; + char *_name = NULL; + TALLOC_CTX *tmp_ctx; + errno_t ret; + + tmp_ctx = talloc_new(NULL); + if (tmp_ctx == NULL) { + return NULL; + } + + ret = sss_parse_name(tmp_ctx, dom->names, ioname, &domname, &shortname); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, "sss_parse_name failed [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + _name = sss_create_internal_fqname(mem_ctx, shortname, + domname ? domname : dom->name); + if (_name == NULL) { + DEBUG(SSSDBG_OP_FAILURE, + "Failed to format group name.\n"); + goto done; + } + +done: + talloc_free(tmp_ctx); + return _name; +} |