From dca8867b9eb8b578078ee6ebe17d46766c06fd62 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 10 May 2005 04:33:28 +0000 Subject: [PATCH] windows-server-manager-20050509 Enable KFW support for server manager --- src/WINNT/afsapplib/al_admsvr.cpp | 2 +- src/WINNT/afsapplib/al_creds.cpp | 13 ++++-- src/WINNT/afsapplib/al_misc.cpp | 6 ++- src/WINNT/afssvrmgr/creds.cpp | 70 +++++++++++++++++++++---------- 4 files changed, 63 insertions(+), 28 deletions(-) diff --git a/src/WINNT/afsapplib/al_admsvr.cpp b/src/WINNT/afsapplib/al_admsvr.cpp index c2d672bf9..ef8fb543f 100644 --- a/src/WINNT/afsapplib/al_admsvr.cpp +++ b/src/WINNT/afsapplib/al_admsvr.cpp @@ -25,7 +25,7 @@ static struct { BOOL fUseAdminServer; DWORD idAdminServerClient; - } l; + } l = {0, 0}; /* diff --git a/src/WINNT/afsapplib/al_creds.cpp b/src/WINNT/afsapplib/al_creds.cpp index 237a606f6..f2f964dae 100644 --- a/src/WINNT/afsapplib/al_creds.cpp +++ b/src/WINNT/afsapplib/al_creds.cpp @@ -68,7 +68,8 @@ BOOL AfsAppLib_CrackCredentials (PVOID hCreds, LPTSTR pszCell, LPTSTR pszUser, L { rc = asc_CredentialsCrack (idClient, hCreds, pszCell, pszUser, pst, &status); } - else if (OpenClientLibrary()) + else + if (OpenClientLibrary()) { char szUserA[ cchRESOURCE ], szUser2A[ cchRESOURCE ]; char szCellA[ cchRESOURCE ]; @@ -102,7 +103,8 @@ PVOID AfsAppLib_GetCredentials (LPCTSTR pszCell, ULONG *pStatus) { hCreds = asc_CredentialsGet (idClient, pszCell, &status); } - else if (OpenClientLibrary()) + else + if (OpenClientLibrary()) { LPSTR pszCellA = StringToAnsi (pszCell); @@ -128,7 +130,8 @@ PVOID AfsAppLib_SetCredentials (LPCTSTR pszCell, LPCTSTR pszUser, LPCTSTR pszPas { hCreds = asc_CredentialsSet (idClient, pszCell, pszUser, pszPassword, &status); } - else if (OpenClientLibrary()) + else + if (OpenClientLibrary()) { char szCellA[ cchRESOURCE ]; char szUserA[ cchRESOURCE ]; @@ -903,6 +906,9 @@ void OnExpiredCredentials (WPARAM wp, LPARAM lp) BOOL AfsAppLib_IsUserAdmin (PVOID hCreds, LPTSTR pszUser) { +#ifndef USE_KASERVER + return TRUE; +#else BOOL rc = FALSE; afs_status_t status; @@ -969,5 +975,6 @@ BOOL AfsAppLib_IsUserAdmin (PVOID hCreds, LPTSTR pszUser) } return rc; +#endif /* USE_KASERVER */ } diff --git a/src/WINNT/afsapplib/al_misc.cpp b/src/WINNT/afsapplib/al_misc.cpp index 3620bd265..438c6f62f 100644 --- a/src/WINNT/afsapplib/al_misc.cpp +++ b/src/WINNT/afsapplib/al_misc.cpp @@ -213,7 +213,8 @@ BOOL CALLBACK AfsAppLib_TranslateErrorFunc (LPTSTR pszText, ULONG code, LANGID i ULONG status; return asc_ErrorCodeTranslate (idClient, code, idLanguage, pszText, &status); } - else if (OpenUtilLibrary()) + else + if (OpenUtilLibrary()) { const char *pszTextA = NULL; afs_status_t status; @@ -463,7 +464,8 @@ BOOL AfsAppLib_GetLocalCell (LPTSTR pszCell, ULONG *pStatus) { rc = asc_LocalCellGet (idClient, szCell, &status); } - else if (OpenClientLibrary()) + else + if (OpenClientLibrary()) { char szCellNameA[ MAX_PATH ]; if ((rc = afsclient_LocalCellGet (szCellNameA, (afs_status_p)&status)) == TRUE) diff --git a/src/WINNT/afssvrmgr/creds.cpp b/src/WINNT/afssvrmgr/creds.cpp index 0ad004e5f..b7cc625d7 100644 --- a/src/WINNT/afssvrmgr/creds.cpp +++ b/src/WINNT/afssvrmgr/creds.cpp @@ -18,6 +18,7 @@ extern "C" { #include "time.h" #include "subset.h" +#include /* * OPENCELL DIALOG ____________________________________________________________ @@ -91,28 +92,53 @@ void OpenCellDlg_Hook_OnOK (HWND hDlg, LPOPENCELLDLG_PARAMS lpp) TCHAR szPassword[ cchRESOURCE ]; GetDlgItemText (hDlg, IDC_OPENCELL_PASSWORD, szPassword, cchNAME); - ULONG status; - if ((lpp->hCreds = AfsAppLib_SetCredentials (lpp->szCell, szUser, szPassword, &status)) == NULL) - { - ErrorDialog (status, IDS_SVR_ERROR_BAD_CREDENTIALS); - } - else - { - // See if those credentials are sufficient - // - CHECKCREDS_PARAMS pp; - memset (&pp, 0x00, sizeof(pp)); - memcpy (&pp.bcdp, &lpp->bcdp, sizeof(BADCREDSDLG_PARAMS)); - pp.bcdp.hParent = hDlg; - pp.hCreds = lpp->hCreds; - pp.fShowWarning = TRUE; - - if ((rc = AfsAppLib_CheckCredentials (&pp)) == FALSE) - { - SetDlgItemText (hDlg, IDC_OPENCELL_ID, TEXT("admin")); - PostMessage (hDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hDlg,IDC_OPENCELL_PASSWORD), TRUE); - } - } + ULONG status; + + if ( KFW_is_available() ) { + // KFW_AFS_get_cred() parses the szNameA field as complete + // princial including potentially + // a different realm then the specified cell name. + char *Result = NULL; + + char szCellA[ 256 ]; + CopyStringToAnsi (szCellA, lpp->szCell); + + char szUserA[ 256 ]; + CopyStringToAnsi (szUserA, szUser); + + char szPasswordA[ 256 ]; + CopyStringToAnsi (szPasswordA, szPassword); + + rc = !KFW_AFS_get_cred(szUserA, szCellA, szPasswordA, 0, NULL, &Result); + if (rc) { + if ((lpp->hCreds = AfsAppLib_GetCredentials (lpp->szCell, &status)) == NULL) { + ErrorDialog (status, IDS_SVR_ERROR_BAD_CREDENTIALS); + } + } + } else { + if ((lpp->hCreds = AfsAppLib_SetCredentials (lpp->szCell, szUser, szPassword, &status)) == NULL) + { + ErrorDialog (status, IDS_SVR_ERROR_BAD_CREDENTIALS); + } + else + { + // See if those credentials are sufficient + // + CHECKCREDS_PARAMS pp; + memset (&pp, 0x00, sizeof(pp)); + memcpy (&pp.bcdp, &lpp->bcdp, sizeof(BADCREDSDLG_PARAMS)); + pp.bcdp.hParent = hDlg; + pp.hCreds = lpp->hCreds; + pp.fShowWarning = TRUE; + + if ((rc = AfsAppLib_CheckCredentials (&pp)) == FALSE) + { + SetDlgItemText (hDlg, IDC_OPENCELL_ID, TEXT("admin")); + PostMessage (hDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hDlg,IDC_OPENCELL_PASSWORD), TRUE); + } + } + + } if (rc) { -- 2.39.5