summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-03-22 16:49:12 +0100
committerStephen Gallagher <sgallagh@redhat.com>2012-03-29 15:06:53 -0400
commit9930aed614d3908e167e64de4e8c1c1c05584a92 (patch)
tree35a02ef33bd86d73b5b47afc0fb2cc424fd5d951
parentbd0dad92d8cd37f9c710741a33820368d9a831c5 (diff)
downloadsssd-9930aed614d3908e167e64de4e8c1c1c05584a92.tar.gz
sssd-9930aed614d3908e167e64de4e8c1c1c05584a92.tar.xz
sssd-9930aed614d3908e167e64de4e8c1c1c05584a92.zip
Add sss_get_cased_name_list utility function
-rw-r--r--src/util/usertools.c37
-rw-r--r--src/util/util.h4
2 files changed, 41 insertions, 0 deletions
diff --git a/src/util/usertools.c b/src/util/usertools.c
index 64e8b1037..ff189e32f 100644
--- a/src/util/usertools.c
+++ b/src/util/usertools.c
@@ -182,3 +182,40 @@ sss_get_cased_name(TALLOC_CTX *mem_ctx,
return case_sensitive ? talloc_strdup(mem_ctx, orig_name) :
sss_tc_utf8_str_tolower(mem_ctx, orig_name);
}
+
+errno_t
+sss_get_cased_name_list(TALLOC_CTX *mem_ctx, const char * const *orig,
+ bool case_sensitive, const char ***_cased)
+{
+ const char **out;
+ size_t num, i;
+
+ if (orig == NULL) {
+ *_cased = NULL;
+ return EOK;
+ }
+
+ for (num=0; orig[num]; num++); /* count the num of strings */
+
+ if (num == 0) {
+ *_cased = NULL;
+ return EOK;
+ }
+
+ out = talloc_array(mem_ctx, const char *, num + 1);
+ if (out == NULL) {
+ return ENOMEM;
+ }
+
+ for (i = 0; i < num; i++) {
+ out[i] = sss_get_cased_name(out, orig[i], case_sensitive);
+ if (out[i] == NULL) {
+ talloc_free(out);
+ return ENOMEM;
+ }
+ }
+
+ out[num] = NULL;
+ *_cased = out;
+ return EOK;
+}
diff --git a/src/util/util.h b/src/util/util.h
index 985c78981..da6db1cff 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -405,6 +405,10 @@ char *
sss_get_cased_name(TALLOC_CTX *mem_ctx, const char *orig_name,
bool case_sensitive);
+errno_t
+sss_get_cased_name_list(TALLOC_CTX *mem_ctx, const char * const *orig,
+ bool case_sensitive, const char ***_cased);
+
/* from backup-file.c */
int backup_file(const char *src, int dbglvl);