summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/includes.h5
-rw-r--r--source3/libsmb/clikrb5.c18
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.