From c9761464e7d8f1446862a3c94d900c74403b0f07 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Sun, 21 Mar 2010 12:49:34 -0400 Subject: [PATCH] aix krb5 error message handling handle krb5 error messages for aix in aklog and lam plugin Change-Id: Iac96dc62e7889d375db111d5c96d86cf09715ab6 Reviewed-on: http://gerrit.openafs.org/1609 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/aklog/aklog.c | 7 +++++++ src/cf/kerberos.m4 | 2 +- src/tsm41/aix_aklog.c | 13 +++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/aklog/aklog.c b/src/aklog/aklog.c index 2caed0704..9525cc70a 100644 --- a/src/aklog/aklog.c +++ b/src/aklog/aklog.c @@ -332,10 +332,17 @@ redirect_errors(const char *who, afs_int32 code, const char *fmt, va_list ap) if (code) { const char *str = afs_error_message(code); if (strncmp(str, "unknown", strlen("unknown")) == 0) { +#ifdef HAVE_KRB5_SVC_GET_MSG + krb5_svc_get_msg(code,&str); +#else str = error_message(code); +#endif } fputs(str, stderr); fputs(" ", stderr); +#ifdef HAVE_KRB5_SVC_GET_MSG + krb5_free_string(str); +#endif } if (fmt) { vfprintf(stderr, fmt, ap); diff --git a/src/cf/kerberos.m4 b/src/cf/kerberos.m4 index caaaf44c2..2b01a2ac4 100644 --- a/src/cf/kerberos.m4 +++ b/src/cf/kerberos.m4 @@ -65,7 +65,7 @@ if test X$conf_krb5 = XYES; then CPPFLAGS="$CPPFLAGS $KRB5CFLAGS" save_LIBS="$LIBS" LIBS="$LIBS $KRB5LIBS" - AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket krb5_c_encrypt krb5_decode_ticket krb5_get_prompt_types krb5_allow_weak_crypto krb5_enctype_enable]) + AC_CHECK_FUNCS([add_to_error_table add_error_table krb5_princ_size krb5_principal_get_comp_string encode_krb5_enc_tkt_part encode_krb5_ticket krb5_c_encrypt krb5_decode_ticket krb5_get_prompt_types krb5_allow_weak_crypto krb5_enctype_enable krb5_svc_get_msg]) AC_CHECK_FUNCS([krb5_524_convert_creds], , [AC_CHECK_FUNCS([krb524_convert_creds_kdc], , [AC_CHECK_LIB([krb524], [krb524_convert_creds_kdc], diff --git a/src/tsm41/aix_aklog.c b/src/tsm41/aix_aklog.c index b6fba8a01..9c1e919fc 100644 --- a/src/tsm41/aix_aklog.c +++ b/src/tsm41/aix_aklog.c @@ -156,9 +156,18 @@ aklog_authenticate(char *userName, char *response, int *reenter, char **message) status = auth_to_cell(context, userName, NULL, NULL); if (status) { + char *str = afs_error_message(status); *message = (char *)malloc(1024); - sprintf(*message, "Unable to obtain AFS tokens: %s.\n", - afs_error_message(status)); +#ifdef HAVE_KRB5_SVC_GET_MSG + if (strncmp(str, "unknown", strlen("unknown")) == 0) { + krb5_svc_get_msg(status,&str); + sprintf(*message, "Unable to obtain AFS tokens: %s.\n", + str); + krb5_free_string(str); + } else +#endif + sprintf(*message, "Unable to obtain AFS tokens: %s.\n", + str); return AUTH_FAILURE; /* NOTFOUND? */ } -- 2.39.5