lib/krb5_wrap: add smb_krb5_principal_get_type().
authorGünther Deschner <gd@samba.org>
Thu, 8 May 2014 10:13:00 +0000 (12:13 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 8 Aug 2014 04:02:35 +0000 (06:02 +0200)
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
lib/krb5_wrap/krb5_samba.c
lib/krb5_wrap/krb5_samba.h
source4/heimdal_build/wscript_configure
wscript_configure_system_mitkrb5

index 8d91e1c074ff7f451f15e755fc6ec3aae7c59eeb..3288f7563fb71c39db32358e3d05c8d85282efff 100644 (file)
@@ -2572,6 +2572,26 @@ krb5_boolean smb_krb5_get_allowed_weak_crypto(krb5_context context)
 #error UNKNOWN_KRB5_CONFIG_ROUTINES
 #endif
 
+/**
+* @brief Return the type of a krb5_principal
+*
+* @param context       The krb5_context
+* @param principal     The const krb5_principal
+*
+* @return integer type of the principal
+*/
+int smb_krb5_principal_get_type(krb5_context context,
+                               krb5_const_principal principal)
+{
+#ifdef HAVE_KRB5_PRINCIPAL_GET_TYPE /* Heimdal */
+       return krb5_principal_get_type(context, principal);
+#elif defined(krb5_princ_type) /* MIT */
+       return krb5_princ_type(context, principal);
+#else
+#error UNKNOWN_PRINC_GET_TYPE_FUNCTION
+#endif
+}
+
 #else /* HAVE_KRB5 */
  /* this saves a few linking headaches */
  int cli_krb5_get_ticket(TALLOC_CTX *mem_ctx,
index 03246fd028830e3fdb10569f68888bc3ad2038c3..13b8c32e7cbda0f610e12378223c63ebc07104d3 100644 (file)
@@ -329,6 +329,9 @@ krb5_error_code krb5_copy_data_contents(krb5_data *p,
                                        const void *data,
                                        size_t len);
 
+int smb_krb5_principal_get_type(krb5_context context,
+                               krb5_const_principal principal);
+
 #endif /* HAVE_KRB5 */
 
 int cli_krb5_get_ticket(TALLOC_CTX *mem_ctx,
index 297422f6116c3ee1bca532571ffd39b7b53039a5..cac72adea96d31e056e806ec696c0cf9128cf17f 100755 (executable)
@@ -165,6 +165,7 @@ conf.define('HAVE_FLAGS_IN_KRB5_CREDS', 1)
 conf.define('HAVE_KRB5_CONFIG_GET_BOOL_DEFAULT', 1)
 conf.define('HAVE_KRB5_DATA_COPY', 1)
 conf.define('HAVE_KRB5_PRINCIPAL_SET_REALM', 1)
+conf.define('HAVE_KRB5_PRINCIPAL_GET_TYPE', 1)
 
 heimdal_includedirs = []
 heimdal_libdirs = []
index 3293b3c7b4c88a1d702fefb91ac9f1b392b2079a..c3e9e275d58cf1ae003f3277a468a7b9e4f46d92 100644 (file)
@@ -108,7 +108,7 @@ conf.CHECK_FUNCS('''
        krb5_free_checksum_contents krb5_c_make_checksum krb5_create_checksum
        krb5_config_get_bool_default krb5_get_profile
        krb5_data_copy
-       krb5_keyblock_init krb5_principal_set_realm
+       krb5_keyblock_init krb5_principal_set_realm krb5_principal_get_type
        ''',
      lib='krb5 k5crypto')
 conf.CHECK_DECLS('''krb5_get_credentials_for_user