diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/sss_nss.c | 11 | ||||
-rw-r--r-- | src/util/sss_nss.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/util/sss_nss.c b/src/util/sss_nss.c index 8cc1416d7..208b57842 100644 --- a/src/util/sss_nss.c +++ b/src/util/sss_nss.c @@ -147,6 +147,17 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template, homedir_ctx->config_homedir_substr); break; + case 'P': + if (homedir_ctx->upn == NULL) { + DEBUG(SSSDBG_CRIT_FAILURE, + "Cannot expand user principal name template " + "string is empty.\n"); + goto done; + } + result = talloc_asprintf_append(result, "%s%s", p, + homedir_ctx->upn); + break; + case '%': result = talloc_asprintf_append(result, "%s%%", p); break; diff --git a/src/util/sss_nss.h b/src/util/sss_nss.h index 19bf26589..30359fc7c 100644 --- a/src/util/sss_nss.h +++ b/src/util/sss_nss.h @@ -32,6 +32,7 @@ struct sss_nss_homedir_ctx { const char *domain; const char *flatname; const char *config_homedir_substr; + const char *upn; }; char *expand_homedir_template(TALLOC_CTX *mem_ctx, const char *template, |