klog-deal-with-aix-stupidity-20080418
authorDerrick Brashear <shadow@dementia.org>
Fri, 18 Apr 2008 21:49:45 +0000 (21:49 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 18 Apr 2008 21:49:45 +0000 (21:49 +0000)
LICENSE IPL10

aix krb5 is broken. deal.

src/aklog/klog.c
src/cf/kerberos.m4

index 146d939..8acb932 100644 (file)
@@ -313,8 +313,16 @@ klog_prompter(krb5_context context,
     if ((types = krb5_get_prompt_types(context)))
 #endif
     for (i = 0; i < num_prompts; ++i) {
-#if !defined(USING_HEIMDAL) && defined(HAVE_KRB5_GET_PROMPT_TYPES)
+#if !defined(USING_HEIMDAL) 
+#if defined(HAVE_KRB5_GET_PROMPT_TYPES)
        type = types[i];
+#elif defined(HAVE_KRB5_PROMPT_TYPE)   
+       type = prompts[i].type;
+#else
+       /* AIX 5.3 krb5_get_prompt_types is missing. Um... */
+       type = ((i == 1)&&(num_prompts == 2)) ? 
+         KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN : KRB5_PROMPT_TYPE_PASSWORD;
+#endif
 #else
        type = prompts[i].type;
 #endif
index 9bae17a..b9fa573 100644 (file)
@@ -91,12 +91,26 @@ ac_cv_krb5_creds_session_exists=yes,
 ac_cv_krb5_creds_session_exists=no)])
 AC_MSG_RESULT($ac_cv_krb5_creds_session_exists)
 
+AC_MSG_CHECKING(for krb5_prompt.type existence)
+AC_CACHE_VAL(ac_cv_krb5_prompt_type_exists,
+[
+AC_TRY_COMPILE(
+[#include <krb5.h>],
+[krb5_prompt _p;
+printf("%x\n", _p.type);], 
+ac_cv_krb5_prompt_type_exists=yes,
+ac_cv_krb5_prompt_type_exists=no)])
+AC_MSG_RESULT($ac_cv_krb5_prompt_type_exists)
+       
 if test "x$ac_cv_krb5_creds_keyblock_exists" = "xyes"; then
        AC_DEFINE(HAVE_KRB5_CREDS_KEYBLOCK, 1, [define if krb5_creds has keyblock])
 fi
 if test "x$ac_cv_krb5_creds_session_exists" = "xyes"; then
        AC_DEFINE(HAVE_KRB5_CREDS_SESSION, 1, [define if krb5_creds has session])
 fi
+if test "x$ac_cv_krb5_prompt_type_exists" = "xyes"; then
+       AC_DEFINE(HAVE_KRB5_PROMPT_TYPE, 1, [define if krb5_prompt has type])
+fi
        
 dnl    AC_CHECK_MEMBERS([krb5_creds.keyblock, krb5_creds.session],,, [#include <krb5.h>])
        CPPFLAGS="$save_CPPFLAGS"