From: Günther Deschner Date: Wed, 11 Nov 2009 23:51:46 +0000 (+0100) Subject: s3-kerberos: add smb_krb5_principal_get_realm(). X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bddafc6de8e37e014d7f074b6107dda6f76ebdc5;p=thirdparty%2Fsamba.git s3-kerberos: add smb_krb5_principal_get_realm(). Guenther --- diff --git a/source/include/includes.h b/source/include/includes.h index baf22e8db6e..b97f78f31be 100644 --- a/source/include/includes.h +++ b/source/include/includes.h @@ -1268,7 +1268,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/source/libsmb/clikrb5.c b/source/libsmb/clikrb5.c index 3f995de8990..231938790b9 100644 --- a/source/libsmb/clikrb5.c +++ b/source/libsmb/clikrb5.c @@ -1935,6 +1935,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,