summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Židek <mzidek@redhat.com>2015-10-07 19:31:12 +0200
committerJakub Hrozek <jhrozek@redhat.com>2016-01-13 11:28:44 +0100
commit31642de7cab2952ead08479955ce2768d34283c3 (patch)
tree39be84406fa5dd6f480f5a92b34b16ff3a02db0a
parent4af587e90c866f27ddea8e479925db7563d4392c (diff)
downloadsssd-31642de7cab2952ead08479955ce2768d34283c3.tar.gz
sssd-31642de7cab2952ead08479955ce2768d34283c3.tar.xz
sssd-31642de7cab2952ead08479955ce2768d34283c3.zip
util: sss_ioname2internal
-rw-r--r--src/util/usertools.c35
-rw-r--r--src/util/util.h3
2 files changed, 38 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;
+}
diff --git a/src/util/util.h b/src/util/util.h
index f7d60b2ec..25935f2fd 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -321,6 +321,9 @@ int sss_parse_name_for_domains(TALLOC_CTX *memctx,
const char *default_domain,
const char *orig, char **domain, char **name);
+char *sss_ioname2internal(TALLOC_CTX *mem_ctx,
+ struct sss_domain_info *dom,
+ char *ioname);
char *
sss_get_cased_name(TALLOC_CTX *mem_ctx, const char *orig_name,
bool case_sensitive);