From 549737f1e7d52256f053c86116b56c3211b084b6 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 26 Jul 2011 17:03:56 -0400 Subject: [PATCH] Windows: improve afskfw error message output Add KTC and PT error messages to those that can be translated within afskfw.lib. This improves the error logging for afslogon.dll, afscreds.exe, and afssrvadm.exe Change-Id: I62aa5f1249d4d1f2d64ed068be47a5832d97f85c Reviewed-on: http://gerrit.openafs.org/5108 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsd/NTMakefile | 18 +++++++++++++++--- src/WINNT/afsd/afskfw.c | 26 ++++++++++++++++++-------- src/WINNT/afssvrmgr/NTMakefile | 5 ++++- src/WINNT/client_creds/NTMakefile | 1 + 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/WINNT/afsd/NTMakefile b/src/WINNT/afsd/NTMakefile index 2976973..8e23f97 100644 --- a/src/WINNT/afsd/NTMakefile +++ b/src/WINNT/afsd/NTMakefile @@ -266,12 +266,21 @@ $(LANAHELPERLIB): $(LANAHELPERLIB_OBJS) AFSKFWLIB = $(DESTDIR)\lib\afskfw.lib -AFSKFWLIB_OBJS =\ - $(OUT)\afskfw.obj +PTERROBJS=$(OUT)\pterror.obj + +$(PTERROBJS): $(AFSROOT)\src\ptserver\pterror.c + $(C2OBJ) /Fo$@ $** + +KTCERROBJS=$(OUT)\ktc_errors.obj + +$(KTCERROBJS): $(AFSROOT)\src\auth\ktc_errors.c + $(C2OBJ) /Fo$@ $** + +AFSKFWLIB_OBJS = $(OUT)\afskfw.obj $(AFSKFWLIB_OBJS): -$(AFSKFWLIB): $(AFSKFWLIB_OBJS) +$(AFSKFWLIB): $(AFSKFWLIB_OBJS) $(PTERROBJS) $(KTCERROBJS) $(LIBARCH) ############################################################################ @@ -288,6 +297,9 @@ LOGON_DLLOBJS =\ LOGON_DLLLIBS =\ $(DESTDIR)\lib\afsauthent.lib \ $(DESTDIR)\lib\libafsconf.lib \ + $(DESTDIR)\lib\afs\afscom_err.lib \ + $(DESTDIR)\lib\afs\afsutil.lib \ + $(DESTDIR)\lib\afsroken.lib \ $(LANAHELPERLIB) \ $(AFSKFWLIB) diff --git a/src/WINNT/afsd/afskfw.c b/src/WINNT/afsd/afskfw.c index 97f19eb..d5a8866 100644 --- a/src/WINNT/afsd/afskfw.c +++ b/src/WINNT/afsd/afskfw.c @@ -68,6 +68,8 @@ #include #include #include +#include +#include #include #include #include "cm.h" @@ -482,6 +484,9 @@ KFW_initialize(void) } ReleaseMutex(hMutex); CloseHandle(hMutex); + + initialize_KTC_error_table(); + initialize_PT_error_table(); } } @@ -1530,15 +1535,20 @@ KFW_AFS_get_cred( char * username, free(cellconfig.linkedCell); if ( code && reasonP ) { - if (pkrb5_get_error_message) { - char *msg = pkrb5_get_error_message(ctx, code); - StringCbCopyN( reason, sizeof(reason), - msg, sizeof(reason) - 1); - *reasonP = reason; - pkrb5_free_error_message(ctx, msg); - } else { - *reasonP = perror_message(code); + int freemsg = 0; + char *msg = (char *)afs_error_message(code); + if (strncmp(msg, "unknown", strlen(msg)) == 0) { + if (pkrb5_get_error_message) { + msg = pkrb5_get_error_message(ctx, code); + freemsg = 1; + } else + msg = (char *)perror_message(code); } + StringCbCopyN( reason, sizeof(reason), + msg, sizeof(reason) - 1); + *reasonP = reason; + if (freemsg) + pkrb5_free_error_message(ctx, msg); } return(code); } diff --git a/src/WINNT/afssvrmgr/NTMakefile b/src/WINNT/afssvrmgr/NTMakefile index 2aaf442..ed45e5b 100644 --- a/src/WINNT/afssvrmgr/NTMakefile +++ b/src/WINNT/afssvrmgr/NTMakefile @@ -98,8 +98,11 @@ EXELIBS = \ $(DESTDIR)\lib\libafsconf.lib \ $(DESTDIR)\lib\afsrxkad.lib \ $(DESTDIR)\lib\afskfw.lib \ + $(DESTDIR)\lib\afs\afscom_err.lib \ $(DESTDIR)\lib\afs\AfsClass.lib \ - $(DESTDIR)\lib\afs\TaAfsAppLib.lib + $(DESTDIR)\lib\afs\TaAfsAppLib.lib \ + $(DESTDIR)\lib\afs\afsutil.lib \ + $(DESTDIR)\lib\afsroken.lib ############################################################################ diff --git a/src/WINNT/client_creds/NTMakefile b/src/WINNT/client_creds/NTMakefile index ff067c9..ca9ff93 100644 --- a/src/WINNT/client_creds/NTMakefile +++ b/src/WINNT/client_creds/NTMakefile @@ -69,6 +69,7 @@ EXELIBS = \ $(DESTDIR)\lib\libafsconf.lib \ $(DESTDIR)\lib\afs\afsreg.lib \ $(DESTDIR)\lib\afskfw.lib \ + $(DESTDIR)\lib\afs\afscom_err.lib \ $(DESTDIR)\lib\afs\afsutil.lib \ $(DESTDIR)\lib\afsroken.lib -- 1.9.4