diff options
-rw-r--r-- | source3/include/includes.h | 5 | ||||
-rw-r--r-- | source3/libsmb/clikrb5.c | 18 |
2 files changed, 22 insertions, 1 deletions
diff --git a/source3/include/includes.h b/source3/include/includes.h index b3446cbf65..796a729d6a 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -952,7 +952,10 @@ char *talloc_asprintf_strupper_m(TALLOC_CTX *t, const char *fmt, ...) PRINTF_ATT krb5_error_code smb_krb5_parse_name(krb5_context context, const char *name, /* in unix charset */ krb5_principal *principal); - +krb5_error_code smb_krb5_parse_name_flags(krb5_context context, + const char *name, /* in unix charset */ + int flags, + krb5_principal *principal); krb5_error_code smb_krb5_unparse_name(TALLOC_CTX *mem_ctx, krb5_context context, krb5_const_principal principal, diff --git a/source3/libsmb/clikrb5.c b/source3/libsmb/clikrb5.c index 145e30beb3..2f68abe961 100644 --- a/source3/libsmb/clikrb5.c +++ b/source3/libsmb/clikrb5.c @@ -65,6 +65,24 @@ static krb5_error_code ads_krb5_get_fwd_ticket( krb5_context context, return ret; } +krb5_error_code smb_krb5_parse_name_flags(krb5_context context, + const char *name, /* in unix charset */ + int flags, + krb5_principal *principal) +{ + krb5_error_code ret; + char *utf8_name; + size_t converted_size; + + if (!push_utf8_talloc(talloc_tos(), &utf8_name, name, &converted_size)) { + return ENOMEM; + } + + ret = krb5_parse_name_flags(context, utf8_name, flags, principal); + TALLOC_FREE(utf8_name); + return ret; +} + #ifdef HAVE_KRB5_PARSE_NAME_NOREALM /************************************************************** krb5_parse_name_norealm that takes a UNIX charset. |