summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2010-02-04 16:34:37 -0500
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2010-02-04 16:34:37 -0500
commitc8232c61ebba4bf9975d0f97f54d88a333ed8f86 (patch)
tree1cb3cd79f0c39b77de7fd7a115f2eff11c96f3b5
parente99610247db9dde56dcd977a0915e5c8dd31c38f (diff)
downloadcredmonger-c8232c61ebba4bf9975d0f97f54d88a333ed8f86.tar.gz
credmonger-c8232c61ebba4bf9975d0f97f54d88a333ed8f86.tar.xz
credmonger-c8232c61ebba4bf9975d0f97f54d88a333ed8f86.zip
- handle krb5_get_init_creds_opt_set_canonicalize() taking a different
number of arguments depending on the implementation
-rw-r--r--configure.ac9
-rw-r--r--src/credmonger.c5
2 files changed, 14 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 7890e08..5f96e92 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,6 +26,15 @@ if test x$ac_cv_func_krb5_get_init_creds_opt_free = xyes ; then
AC_MSG_RESULT([yes])],
AC_MSG_RESULT([no]))
fi
+if test x$ac_cv_func_krb5_get_init_creds_opt_set_canonicalize = xyes ; then
+ AC_MSG_CHECKING([if krb5_get_init_creds_opt_set_canonicalize() takes a context])
+ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <krb5.h>],[
+ krb5_get_init_creds_opt_set_canonicalize(NULL, NULL, 0);]),
+ [AC_DEFINE(KRB5_GET_INIT_CREDS_OPT_SET_CANONICALIZE_TAKES_3_ARGS,1,
+ [Define if krb5_get_init_creds_opt_set_canonicalize() takes three arguments.])
+ AC_MSG_RESULT([yes])],
+ AC_MSG_RESULT([no]))
+fi
CFLAGS="$cflags_save"
LDFLAGS="$ldflags_save"
diff --git a/src/credmonger.c b/src/credmonger.c
index 89e12fa..2edfd5e 100644
--- a/src/credmonger.c
+++ b/src/credmonger.c
@@ -317,7 +317,12 @@ entries_poll(void)
/* If the KDC has a better idea of the client's name, believe
* it. */
if (gic_opts != NULL) {
+#ifdef KRB5_GET_INIT_CREDS_OPT_SET_CANONICALIZE_TAKES_3_ARGS
+ krb5_get_init_creds_opt_set_canonicalize(ctx,
+ gic_opts, 1);
+#else
krb5_get_init_creds_opt_set_canonicalize(gic_opts, 1);
+#endif
}
#endif
/* Walk the list of entries. */