diff options
author | Sumit Bose <sbose@redhat.com> | 2010-10-28 14:10:43 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-11-04 15:04:20 -0400 |
commit | 0bbe2065770968c70fd305da4f6eda1a360a3f1b (patch) | |
tree | 0e71759eac0c3153fe4195ec5fd23d380d79f036 /src/providers/krb5/krb5_common.c | |
parent | 1e29e68388c2e9c5da9cb0afe997bc1b4e6933be (diff) | |
download | sssd-0bbe2065770968c70fd305da4f6eda1a360a3f1b.tar.gz sssd-0bbe2065770968c70fd305da4f6eda1a360a3f1b.tar.xz sssd-0bbe2065770968c70fd305da4f6eda1a360a3f1b.zip |
Add krb5_get_simple_upn()
Diffstat (limited to 'src/providers/krb5/krb5_common.c')
-rw-r--r-- | src/providers/krb5/krb5_common.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/providers/krb5/krb5_common.c b/src/providers/krb5/krb5_common.c index 81ad4e9d4..4d577257b 100644 --- a/src/providers/krb5/krb5_common.c +++ b/src/providers/krb5/krb5_common.c @@ -653,3 +653,28 @@ errno_t krb5_install_sigterm_handler(struct tevent_context *ev, return EOK; } + +errno_t krb5_get_simple_upn(TALLOC_CTX *mem_ctx, struct krb5_ctx *krb5_ctx, + const char *username, const char **_upn) +{ + const char *realm; + char *upn; + + realm = dp_opt_get_cstring(krb5_ctx->opts, KRB5_REALM); + if (realm == NULL) { + DEBUG(1, ("Missing Kerberos realm.\n")); + return ENOENT; + } + + /* NOTE: this is a hack, works only in some environments */ + upn = talloc_asprintf(mem_ctx, "%s@%s", username, realm); + if (upn == NULL) { + DEBUG(1, ("talloc_asprintf failed.\n")); + return ENOMEM; + } + + DEBUG(9, ("Using simple UPN [%s].\n", upn)); + + *_upn = upn; + return EOK; +} |