From 21fc2ea7d4a9944582ffd4d11500faf4bddae835 Mon Sep 17 00:00:00 2001 From: Pavel Reichl Date: Wed, 4 Jun 2014 15:25:31 +0100 Subject: SYSDB: utility call sysdb_attrs_add_lower_case_string Resolves: https://fedorahosted.org/sssd/ticket/2056 Reviewed-by: Sumit Bose --- src/db/sysdb.c | 40 +++++++++++++++++++++++----------------- src/db/sysdb.h | 2 ++ 2 files changed, 25 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/db/sysdb.c b/src/db/sysdb.c index 12964189a..1bc020db6 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -547,6 +547,28 @@ int sysdb_attrs_add_string(struct sysdb_attrs *attrs, return sysdb_attrs_add_val(attrs, name, &v); } +int sysdb_attrs_add_lower_case_string(struct sysdb_attrs *attrs, + const char *name, const char *str) +{ + char *lc_str; + int ret; + + if (attrs == NULL || str == NULL) { + return EINVAL; + } + + lc_str = sss_tc_utf8_str_tolower(attrs, str); + if (lc_str == NULL) { + DEBUG(SSSDBG_OP_FAILURE, "Cannot convert name to lowercase.\n"); + return ENOMEM; + } + + ret = sysdb_attrs_add_string(attrs, name, lc_str); + talloc_free(lc_str); + + return ret; +} + int sysdb_attrs_add_mem(struct sysdb_attrs *attrs, const char *name, const void *mem, size_t size) { @@ -656,23 +678,7 @@ int sysdb_attrs_add_time_t(struct sysdb_attrs *attrs, int sysdb_attrs_add_lc_name_alias(struct sysdb_attrs *attrs, const char *value) { - char *lc_str; - int ret; - - if (attrs == NULL || value == NULL) { - return EINVAL; - } - - lc_str = sss_tc_utf8_str_tolower(attrs, value); - if (lc_str == NULL) { - DEBUG(SSSDBG_OP_FAILURE, "Cannot convert name to lowercase\n"); - return ENOMEM; - } - - ret = sysdb_attrs_add_string(attrs, SYSDB_NAME_ALIAS, lc_str); - talloc_free(lc_str); - - return ret; + return sysdb_attrs_add_lower_case_string(attrs, SYSDB_NAME_ALIAS, value); } int sysdb_attrs_copy_values(struct sysdb_attrs *src, diff --git a/src/db/sysdb.h b/src/db/sysdb.h index 671040018..dd14190bf 100644 --- a/src/db/sysdb.h +++ b/src/db/sysdb.h @@ -266,6 +266,8 @@ int sysdb_attrs_add_val(struct sysdb_attrs *attrs, const char *name, const struct ldb_val *val); int sysdb_attrs_add_string(struct sysdb_attrs *attrs, const char *name, const char *str); +int sysdb_attrs_add_lower_case_string(struct sysdb_attrs *attrs, + const char *name, const char *str); int sysdb_attrs_add_mem(struct sysdb_attrs *attrs, const char *name, const void *mem, size_t size); int sysdb_attrs_add_bool(struct sysdb_attrs *attrs, -- cgit