summaryrefslogtreecommitdiffstats
path: root/src/util/sss_nss.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2013-04-04 13:03:23 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-04-10 13:38:44 +0200
commit6fc4702a3037d9bb5b27bcb58f70edf1802b7b19 (patch)
treee0470eba6e749d3b5d10dabf98d1acfdce89007c /src/util/sss_nss.c
parent591b0325f5d6f70ae71e61a8c563b437acfb1884 (diff)
downloadsssd-6fc4702a3037d9bb5b27bcb58f70edf1802b7b19.tar.gz
sssd-6fc4702a3037d9bb5b27bcb58f70edf1802b7b19.tar.xz
sssd-6fc4702a3037d9bb5b27bcb58f70edf1802b7b19.zip
Allow using flatname for subdomain home dir template
https://fedorahosted.org/sssd/ticket/1609
Diffstat (limited to 'src/util/sss_nss.c')
-rw-r--r--src/util/sss_nss.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/util/sss_nss.c b/src/util/sss_nss.c
index ac36a9ba6..2b7338329 100644
--- a/src/util/sss_nss.c
+++ b/src/util/sss_nss.c
@@ -24,7 +24,8 @@
char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template,
const char *username, uint32_t uid,
- const char *original, const char *domain)
+ const char *original, const char *domain,
+ const char *flatname)
{
char *copy;
char *p;
@@ -105,6 +106,7 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template,
result = talloc_asprintf_append(result, "%s%s@%s", p,
username, domain);
break;
+
case 'o':
if (original == NULL) {
DEBUG(SSSDBG_CRIT_FAILURE,
@@ -117,6 +119,16 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template,
result = talloc_asprintf_append(result, "%s%s", p, orig);
break;
+ case 'F':
+ if (flatname == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("Cannot expand domain name "
+ "template because domain flat "
+ "name is empty.\n"));
+ goto done;
+ }
+ result = talloc_asprintf_append(result, "%s%s", p, flatname);
+ break;
+
case '%':
result = talloc_asprintf_append(result, "%s%%", p);
break;