diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2013-05-10 18:19:12 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-05-30 13:44:35 +0200 |
commit | 1987bff88e01c74d647dd2db4f541ac311537e1a (patch) | |
tree | 5b74ee7f10bc033009a1822b69010b64b249c718 /src/util | |
parent | b36153ce4c3eeb19274ce32e82949da446184406 (diff) | |
download | sssd-1987bff88e01c74d647dd2db4f541ac311537e1a.tar.gz sssd-1987bff88e01c74d647dd2db4f541ac311537e1a.tar.bz2 sssd-1987bff88e01c74d647dd2db4f541ac311537e1a.zip |
Add utility functions for formatting fully-qualified names
Instead of using printf-like functions directly, provide two wrappers
that would encapsulate formatting the fully-qualified names. No
functional change is present in this patch.
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/usertools.c | 25 | ||||
-rw-r--r-- | src/util/util.h | 16 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/util/usertools.c b/src/util/usertools.c index 91110f26..20ca407f 100644 --- a/src/util/usertools.c +++ b/src/util/usertools.c @@ -507,3 +507,28 @@ sss_get_cased_name_list(TALLOC_CTX *mem_ctx, const char * const *orig, *_cased = out; return EOK; } + +static inline const char * +safe_fq_str(struct sss_names_ctx *nctx, uint8_t part, const char *str) +{ + + return nctx->fq_flags & part ? str : ""; +} + +char * +sss_tc_fqname(TALLOC_CTX *mem_ctx, struct sss_names_ctx *nctx, + struct sss_domain_info *domain, const char *name) +{ + if (domain == NULL || nctx == NULL) return NULL; + + return talloc_asprintf(mem_ctx, nctx->fq_fmt, name, domain->name); +} + +int +sss_fqname(char *str, size_t size, struct sss_names_ctx *nctx, + struct sss_domain_info *domain, const char *name) +{ + if (domain == NULL || nctx == NULL) return -EINVAL; + + return snprintf(str, size, nctx->fq_fmt, name, domain->name); +} diff --git a/src/util/util.h b/src/util/util.h index bdb04a8f..2f65fa20 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -43,6 +43,7 @@ #include <ldb.h> #include <dhash.h> +#include "confdb/confdb.h" #include "util/atomic_io.h" #include "util/util_errors.h" #include "util/util_safealign.h" @@ -365,6 +366,21 @@ errno_t sss_get_cased_name_list(TALLOC_CTX *mem_ctx, const char * const *orig, bool case_sensitive, const char ***_cased); +/* Return fully-qualified name according to the fq_fmt. The name is allocated using + * talloc on top of mem_ctx + */ +char * +sss_tc_fqname(TALLOC_CTX *mem_ctx, struct sss_names_ctx *nctx, + struct sss_domain_info *domain, const char *name); + +/* Return fully-qualified name formatted according to the fq_fmt. The buffer in "str" is + * "size" bytes long. Returns the number of bytes written on success or a negative + * value of failure. + */ +int +sss_fqname(char *str, size_t size, struct sss_names_ctx *nctx, + struct sss_domain_info *domain, const char *name); + /* from backup-file.c */ int backup_file(const char *src, int dbglvl); |