diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2016-06-13 17:06:09 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2016-07-06 17:32:58 +0200 |
commit | 4175bc7a7b8ebc663af47148e5ec9c37828cbec7 (patch) | |
tree | bed88e49c751d0add559c50df53bfec47a7effae /src/util/usertools.c | |
parent | c7c1bb2be5224c7d997caf2acf1d615f61cbcb15 (diff) | |
download | sssd-4175bc7a7b8ebc663af47148e5ec9c37828cbec7.tar.gz sssd-4175bc7a7b8ebc663af47148e5ec9c37828cbec7.tar.xz sssd-4175bc7a7b8ebc663af47148e5ec9c37828cbec7.zip |
UTIL: Add a utility function to create a list of qualified names
Adds a convenience wrapper around sss_create_fqname that qualifies a
list of names into the format used internally in sssd.
Diffstat (limited to 'src/util/usertools.c')
-rw-r--r-- | src/util/usertools.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/util/usertools.c b/src/util/usertools.c index 44a56ed97..ee2e86264 100644 --- a/src/util/usertools.c +++ b/src/util/usertools.c @@ -797,3 +797,37 @@ char *sss_create_internal_fqname(TALLOC_CTX *mem_ctx, done: return fqname; } + +/* Creates a list of internal fqnames in format shortname@domname. + * The domain portion is lowercased. */ +char **sss_create_internal_fqname_list(TALLOC_CTX *mem_ctx, + const char * const *shortname_list, + const char *dom_name) +{ + char **fqname_list = NULL; + size_t c; + + if (shortname_list == NULL || dom_name == NULL) { + /* Avoid allocating null@null */ + return NULL; + } + + for (c = 0; shortname_list[c] != NULL; c++); + fqname_list = talloc_zero_array(mem_ctx, char *, c+1); + if (fqname_list == NULL) { + talloc_free(fqname_list); + return NULL; + } + + for (size_t i = 0; shortname_list[i] != NULL; i++) { + fqname_list[i] = sss_create_internal_fqname(fqname_list, + shortname_list[i], + dom_name); + if (fqname_list == NULL) { + talloc_free(fqname_list); + return NULL; + } + } + + return fqname_list; +} |