summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2015-02-10 13:13:01 +0100
committerGünther Deschner <gd@samba.org>2015-03-27 01:26:16 +0100
commite38acb344ac5a5c8197dfd333566df29db826f7d (patch)
treea145de8fbbda5816b7b5e7568e48bcacaf9f2322
parent34ef6b8d20a2aa1552910e6568afc5019937ad42 (diff)
downloadsamba-e38acb344ac5a5c8197dfd333566df29db826f7d.tar.gz
krb5_wrap: add smb_krb5_principal_set_type().
Guenther Signed-off-by: Günther Deschner <gd@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
-rw-r--r--lib/krb5_wrap/krb5_samba.c21
-rw-r--r--lib/krb5_wrap/krb5_samba.h4
-rwxr-xr-xsource4/heimdal_build/wscript_configure1
-rw-r--r--wscript_configure_system_mitkrb51
4 files changed, 27 insertions, 0 deletions
diff --git a/lib/krb5_wrap/krb5_samba.c b/lib/krb5_wrap/krb5_samba.c
index 6d71f2223db..b70c0d314d2 100644
--- a/lib/krb5_wrap/krb5_samba.c
+++ b/lib/krb5_wrap/krb5_samba.c
@@ -2603,6 +2603,27 @@ int smb_krb5_principal_get_type(krb5_context context,
}
/**
+* @brief Set the type of a krb5_principal
+*
+* @param context The krb5_context
+* @param principal The const krb5_principal
+* @param type The principal type
+*
+*/
+void smb_krb5_principal_set_type(krb5_context context,
+ krb5_principal principal,
+ int type)
+{
+#ifdef HAVE_KRB5_PRINCIPAL_SET_TYPE /* Heimdal */
+ krb5_principal_set_type(context, principal, type);
+#elif defined(krb5_princ_type) /* MIT */
+ krb5_princ_type(context, principal) = type;
+#else
+#error UNKNOWN_PRINC_SET_TYPE_FUNCTION
+#endif
+}
+
+/**
* @brief Generate a krb5 warning, forwarding to com_err
*
* @param context The krb5_context
diff --git a/lib/krb5_wrap/krb5_samba.h b/lib/krb5_wrap/krb5_samba.h
index 7ff3a869973..12711e8cd32 100644
--- a/lib/krb5_wrap/krb5_samba.h
+++ b/lib/krb5_wrap/krb5_samba.h
@@ -263,6 +263,10 @@ krb5_error_code smb_krb5_make_pac_checksum(TALLOC_CTX *mem_ctx,
char *smb_krb5_principal_get_realm(krb5_context context,
krb5_const_principal principal);
+void smb_krb5_principal_set_type(krb5_context context,
+ krb5_principal principal,
+ int type);
+
krb5_error_code smb_krb5_principal_set_realm(krb5_context context,
krb5_principal principal,
const char *realm);
diff --git a/source4/heimdal_build/wscript_configure b/source4/heimdal_build/wscript_configure
index 9a686566144..236adcd000e 100755
--- a/source4/heimdal_build/wscript_configure
+++ b/source4/heimdal_build/wscript_configure
@@ -164,6 +164,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_SET_TYPE', 1)
conf.define('HAVE_KRB5_PRINCIPAL_GET_TYPE', 1)
conf.define('HAVE_KRB5_WARNX', 1)
diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5
index 38397e32b7d..351e9d83a6d 100644
--- a/wscript_configure_system_mitkrb5
+++ b/wscript_configure_system_mitkrb5
@@ -113,6 +113,7 @@ conf.CHECK_FUNCS('''
krb5_config_get_bool_default krb5_get_profile
krb5_data_copy
krb5_keyblock_init krb5_principal_set_realm krb5_principal_get_type
+ krb5_principal_set_type
krb5_warnx
''',
lib='krb5 k5crypto')