From eec4c8fbf8659858cac977991aba562a79bbf00c 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 Reviewed-on: http://gerrit.openafs.org/5108 Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from 549737f1e7d52256f053c86116b56c3211b084b6) Change-Id: I4eb6f23e035b0774dffce8779d680b16ea607d2e Reviewed-on: http://gerrit.openafs.org/5136 Tested-by: BuildBot Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- src/WINNT/afsd/NTMakefile | 17 ++++++++++++++--- src/WINNT/afsd/afskfw.c | 26 ++++++++++++++++++-------- src/WINNT/afssvrmgr/NTMakefile | 4 +++- src/WINNT/client_creds/NTMakefile | 4 +++- 4 files changed, 38 insertions(+), 13 deletions(-) diff --git a/src/WINNT/afsd/NTMakefile b/src/WINNT/afsd/NTMakefile index 6726d12de..e94f1f28f 100644 --- a/src/WINNT/afsd/NTMakefile +++ b/src/WINNT/afsd/NTMakefile @@ -261,12 +261,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) ############################################################################ @@ -283,6 +292,8 @@ LOGON_DLLOBJS =\ LOGON_DLLLIBS =\ $(DESTDIR)\lib\afsauthent.lib \ $(DESTDIR)\lib\libafsconf.lib \ + $(DESTDIR)\lib\afs\afscom_err.lib \ + $(DESTDIR)\lib\afs\afsutil.lib \ $(LANAHELPERLIB) \ $(AFSKFWLIB) diff --git a/src/WINNT/afsd/afskfw.c b/src/WINNT/afsd/afskfw.c index ec6f3b365..67548c747 100644 --- a/src/WINNT/afsd/afskfw.c +++ b/src/WINNT/afsd/afskfw.c @@ -67,6 +67,8 @@ #include #include #include +#include +#include #include #include #include "cm.h" @@ -481,6 +483,9 @@ KFW_initialize(void) } ReleaseMutex(hMutex); CloseHandle(hMutex); + + initialize_KTC_error_table(); + initialize_PT_error_table(); } } @@ -1529,15 +1534,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 11fe07711..42bc7dbb0 100644 --- a/src/WINNT/afssvrmgr/NTMakefile +++ b/src/WINNT/afssvrmgr/NTMakefile @@ -99,8 +99,10 @@ EXELIBS = \ $(DESTDIR)\lib\afsrxkad.lib \ $(DESTDIR)\lib\afsdes.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 ############################################################################ diff --git a/src/WINNT/client_creds/NTMakefile b/src/WINNT/client_creds/NTMakefile index f0b6cc938..728945c59 100644 --- a/src/WINNT/client_creds/NTMakefile +++ b/src/WINNT/client_creds/NTMakefile @@ -68,7 +68,9 @@ EXELIBS = \ $(DESTDIR)\lib\afsauthent.lib \ $(DESTDIR)\lib\libafsconf.lib \ $(DESTDIR)\lib\afs\afsreg.lib \ - $(DESTDIR)\lib\afskfw.lib + $(DESTDIR)\lib\afskfw.lib \ + $(DESTDIR)\lib\afs\afscom_err.lib \ + $(DESTDIR)\lib\afs\afsutil.lib ############################################################################ # -- 2.39.5