diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/usertools.c | 24 | ||||
-rw-r--r-- | src/util/util.h | 4 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/util/usertools.c b/src/util/usertools.c index ea2123061..57945c7f1 100644 --- a/src/util/usertools.c +++ b/src/util/usertools.c @@ -366,6 +366,30 @@ int sss_parse_name(TALLOC_CTX *memctx, return EOK; } +int sss_parse_name_const(TALLOC_CTX *memctx, + struct sss_names_ctx *snctx, const char *orig, + const char **_domain, const char **_name) +{ + char *domain; + char *name; + int ret; + + ret = sss_parse_name(memctx, snctx, orig, + (_domain == NULL) ? NULL : &domain, + (_name == NULL) ? NULL : &name); + if (ret == EOK) { + if (_domain != NULL) { + *_domain = domain; + } + + if (_name != NULL) { + *_name = name; + } + } + + return ret; +} + static struct sss_domain_info * match_any_domain_or_subdomain_name( struct sss_domain_info *dom, const char *dmatch) diff --git a/src/util/util.h b/src/util/util.h index 38d9fca4c..af2a57818 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -280,6 +280,10 @@ int sss_parse_name(TALLOC_CTX *memctx, struct sss_names_ctx *snctx, const char *orig, char **_domain, char **_name); +int sss_parse_name_const(TALLOC_CTX *memctx, + struct sss_names_ctx *snctx, const char *orig, + const char **_domain, const char **_name); + int sss_parse_name_for_domains(TALLOC_CTX *memctx, struct sss_domain_info *domains, const char *default_domain, |