s3-kerberos: add smb_krb5_principal_get_realm().
authorGünther Deschner <gd@samba.org>
Wed, 11 Nov 2009 23:51:46 +0000 (00:51 +0100)
committerKarolin Seeger <kseeger@samba.org>
Wed, 13 Jan 2010 13:01:00 +0000 (14:01 +0100)
Guenther
(cherry picked from commit bddafc6de8e37e014d7f074b6107dda6f76ebdc5)

source/include/includes.h
source/libsmb/clikrb5.c

index baf22e8db6e549b08285e015ff5ded60446311fd..b97f78f31be393e2548757256fda223679c9d408 100644 (file)
@@ -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 */
 
 
index 3f995de8990d70d3fce0f74d741cb2ebcc306de8..231938790b918ce3707000037cdeae99faefaa6e 100644 (file)
@@ -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,