summaryrefslogtreecommitdiff
path: root/src/util/sss_krb5.c
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2013-10-16 15:25:27 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2013-10-17 13:25:59 +0200
commit82c8cd1732ebf89ec144e28b9ff26d8a2260a3e4 (patch)
tree63ed9c0307c08c445ee4a0e820488c76d34cc88f /src/util/sss_krb5.c
parent612c71b24c39948168cefb691de563b56ff9915b (diff)
downloadsssd-82c8cd1732ebf89ec144e28b9ff26d8a2260a3e4.tar.gz
sssd-82c8cd1732ebf89ec144e28b9ff26d8a2260a3e4.tar.bz2
sssd-82c8cd1732ebf89ec144e28b9ff26d8a2260a3e4.zip
heimdal: Fix sss_krb5_get_init_creds_opt_set_canonicalize
Heimdal and MIT Kerberos have a different number of arguments for that function. Add a configure compile check and use the appropriate form.
Diffstat (limited to 'src/util/sss_krb5.c')
-rw-r--r--src/util/sss_krb5.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/util/sss_krb5.c b/src/util/sss_krb5.c
index 5f3177a9..a954d10a 100644
--- a/src/util/sss_krb5.c
+++ b/src/util/sss_krb5.c
@@ -811,15 +811,16 @@ cleanup:
#endif /* HAVE_KRB5_UNPARSE_NAME_FLAGS */
}
-void sss_krb5_get_init_creds_opt_set_canonicalize(krb5_get_init_creds_opt *opts,
+void sss_krb5_get_init_creds_opt_set_canonicalize(krb5_context ctx,
+ krb5_get_init_creds_opt *opts,
int canonicalize)
{
- /* FIXME: The extra check for HAVE_KRB5_TICKET_TIMES is a workaround due to Heimdal
- * defining krb5_get_init_creds_opt_set_canonicalize() with a different set of
- * arguments. We should use a better configure check in the future.
- */
-#if defined(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_CANONICALIZE) && defined(HAVE_KRB5_TICKET_TIMES)
+#if defined(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_CANONICALIZE) && \
+ KRB5_GET_INIT_CREDS_OPT_SET_CANONICALIZE_ARGS == 2
krb5_get_init_creds_opt_set_canonicalize(opts, canonicalize);
+#elif defined(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_CANONICALIZE) && \
+ KRB5_GET_INIT_CREDS_OPT_SET_CANONICALIZE_ARGS == 3
+ (void) krb5_get_init_creds_opt_set_canonicalize(ctx, opts, canonicalize);
#else
DEBUG(SSSDBG_OP_FAILURE, ("Kerberos principal canonicalization is not available!\n"));
#endif