From 80d2ad88d8deac953346d1ce98fb519d7f2bf3de Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Thu, 12 Nov 2009 00:51:46 +0100 Subject: [PATCH] s3-kerberos: add smb_krb5_principal_get_realm(). Guenther --- source3/include/includes.h | 3 ++- source3/libsmb/clikrb5.c | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/source3/include/includes.h b/source3/include/includes.h index 4dee258c864..ea9a15983ec 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -1025,7 +1025,8 @@ int smb_krb5_kt_add_entry_ext(krb5_context context, krb5_data password, bool no_salt, bool keep_old_entries); - +char *smb_krb5_principal_get_realm(krb5_context context, + krb5_principal principal); #endif /* HAVE_KRB5 */ diff --git a/source3/libsmb/clikrb5.c b/source3/libsmb/clikrb5.c index 76d99c1f2dd..6e6793b167b 100644 --- a/source3/libsmb/clikrb5.c +++ b/source3/libsmb/clikrb5.c @@ -1941,6 +1941,31 @@ krb5_error_code krb5_auth_con_set_req_cksumtype( } #endif +/* + * smb_krb5_principal_get_realm + * + * @brief Get realm of a principal + * + * @param[in] context The krb5_context + * @param[in] principal The principal + * @return pointer to the realm + * + */ + +char *smb_krb5_principal_get_realm(krb5_context context, + krb5_principal principal) +{ +#ifdef HAVE_KRB5_PRINCIPAL_GET_REALM /* Heimdal */ + return krb5_principal_get_realm(context, principal); +#elif defined(krb5_princ_realm) /* MIT */ + krb5_data *realm; + realm = krb5_princ_realm(context, principal); + return (char *)realm->data; +#else + return NULL; +#endif +} + #else /* HAVE_KRB5 */ /* this saves a few linking headaches */ int cli_krb5_get_ticket(const char *principal, time_t time_offset, -- 2.11.4.GIT