From 4ceaebdbda533374ab7c66a832096988379a3ec8 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sun, 7 Dec 2003 03:39:50 +0000 Subject: [PATCH] afssvrcfg-updates-20031206 Replace the mechanism used to register drives with WNetAddConnection2. This will hopefully be more reliable than then older code which was unable to register drive mappings. Corrected error string formatting. --- src/WINNT/afssvrcfg/cfg_utils.cpp | 4 ++-- src/WINNT/afssvrcfg/config_server_page.cpp | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/WINNT/afssvrcfg/cfg_utils.cpp b/src/WINNT/afssvrcfg/cfg_utils.cpp index aa3461251..ff6ca87c5 100644 --- a/src/WINNT/afssvrcfg/cfg_utils.cpp +++ b/src/WINNT/afssvrcfg/cfg_utils.cpp @@ -109,9 +109,9 @@ void LogError(afs_status_t nErrorCode) const char *pszMsg = GetAdminLibErrorCodeMessage(nErrorCode); if (pszMsg) - g_LogFile.Write("Error %0xd has occurred: %s.\r\n", (UINT)nErrorCode, pszMsg); + g_LogFile.Write("Error 0x%0x has occurred: %s.\r\n", (UINT)nErrorCode, pszMsg); else - g_LogFile.Write("Error %0xd has occurred.\r\n", (UINT)nErrorCode); + g_LogFile.Write("Error 0x%0x has occurred.\r\n", (UINT)nErrorCode); } void ShowError(HWND hDlg, afs_status_t nErrorCode, UINT uiErrorMsgID) diff --git a/src/WINNT/afssvrcfg/config_server_page.cpp b/src/WINNT/afssvrcfg/config_server_page.cpp index 56bde11f0..f8d0edcdc 100644 --- a/src/WINNT/afssvrcfg/config_server_page.cpp +++ b/src/WINNT/afssvrcfg/config_server_page.cpp @@ -1389,10 +1389,20 @@ static BOOL CreateRootAfsDriveMapping() char chDriveLetter; try_again: + NETRESOURCE nr; + memset (&nr, 0x00, sizeof(NETRESOURCE)); + for (chDriveLetter = 'D'; (chDriveLetter <= 'Z') && !m_bRootAfsDriveMappingCreated; chDriveLetter++) { m_szDriveToMapTo[0] = chDriveLetter; g_LogFile.Write("Attempting to map %s to %s: ", m_szDriveToMapTo, szAfsRootDir); - m_bRootAfsDriveMappingCreated = (WNetAddConnection(A2S(szAfsRootDir), TEXT(""), A2S(m_szDriveToMapTo)) == NO_ERROR); + + nr.dwType=RESOURCETYPE_DISK; + nr.lpLocalName=m_szDriveToMapTo; + nr.lpRemoteName=szAfsRootDir; + nr.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE; + DWORD res=WNetAddConnection2(&nr,TEXT(""),NULL,0); + m_bRootAfsDriveMappingCreated = (res == NO_ERROR); + // m_bRootAfsDriveMappingCreated = (WNetAddConnection(A2S(szAfsRootDir), TEXT(""), A2S(m_szDriveToMapTo)) == NO_ERROR); g_LogFile.Write(m_bRootAfsDriveMappingCreated ? "succeeded.\r\n" : "failed.\r\n"); } -- 2.39.5