diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2013-02-07 13:04:24 -0500 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-08-08 17:01:28 +0200 |
commit | a37bf040638ce3015c3af0a24767b1c326121e21 (patch) | |
tree | 7f65d22475e0cdaafade54faa698a4744d604b3e /src/util | |
parent | cfc1261c097af429cdd72b68166b7f2c3b5c95cb (diff) | |
download | sssd-a37bf040638ce3015c3af0a24767b1c326121e21.tar.gz sssd-a37bf040638ce3015c3af0a24767b1c326121e21.tar.xz sssd-a37bf040638ce3015c3af0a24767b1c326121e21.zip |
NSS: Add original homedir to home directory template optionssssd-1.9.2-101.el6
https://fedorahosted.org/sssd/ticket/1805
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/sss_nss.c | 14 | ||||
-rw-r--r-- | src/util/sss_nss.h | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/util/sss_nss.c b/src/util/sss_nss.c index ceccda38f..ac36a9ba6 100644 --- a/src/util/sss_nss.c +++ b/src/util/sss_nss.c @@ -24,7 +24,7 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template, const char *username, uint32_t uid, - const char *domain) + const char *original, const char *domain) { char *copy; char *p; @@ -32,6 +32,7 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template, char *result = NULL; char *res = NULL; TALLOC_CTX *tmp_ctx = NULL; + const char *orig = NULL; if (template == NULL) { DEBUG(SSSDBG_CRIT_FAILURE, ("Missing template.\n")); @@ -104,6 +105,17 @@ 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, + ("Original home directory for %s is not available, " + "using empty string\n", username)); + orig = ""; + } else { + orig = original; + } + result = talloc_asprintf_append(result, "%s%s", p, orig); + break; case '%': result = talloc_asprintf_append(result, "%s%%", p); diff --git a/src/util/sss_nss.h b/src/util/sss_nss.h index 55e2b7f6b..0520035fd 100644 --- a/src/util/sss_nss.h +++ b/src/util/sss_nss.h @@ -27,5 +27,5 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template, const char *username, uint32_t uid, - const char *domain); + const char *original, const char *domain); #endif |