From ce9f211c09043f4888e46258f9d800e5c575a646 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 3 Mar 2004 03:32:42 +0000 Subject: [PATCH] smbname-consistency-20040302 These changes are an attempt to provide a bit more consistency when it comes to the establishment of SMB drive mappings. Whenever mappings are created, the same name is used when a name can be found. This is supposed to mirror what is performed in the integrated logon DLL. --- src/WINNT/client_config/drivemap.cpp | 68 ++++++++++++++++++---------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/src/WINNT/client_config/drivemap.cpp b/src/WINNT/client_config/drivemap.cpp index d5b6af836..240cfdd5a 100644 --- a/src/WINNT/client_config/drivemap.cpp +++ b/src/WINNT/client_config/drivemap.cpp @@ -800,7 +800,7 @@ BOOL GetDriveSubmount (TCHAR chDrive, LPTSTR pszSubmountNow) /* Generate Random User name random acording to time*/ DWORD dwOldState=0; -TCHAR pUserName[MAXRANDOMNAMELEN]; +TCHAR pUserName[MAXRANDOMNAMELEN]=TEXT(""); BOOL fUserName=FALSE; #define AFSLogonOptionName TEXT("System\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider") @@ -911,7 +911,7 @@ void TestAndDoUnMapShare() void DoUnMapShare(BOOL drivemap) //disconnect drivemap { - TCHAR szMachine[ MAX_PATH],szPath[MAX_PATH]; + TCHAR szMachine[MAX_PATH],szPath[MAX_PATH]; DWORD rc=28; HANDLE hEnum; LPNETRESOURCE lpnrLocal,lpnr=NULL; @@ -960,9 +960,8 @@ BOOL DoMapShareChange() HANDLE hEnum; LPNETRESOURCE lpnrLocal,lpnr=NULL; DWORD res; - DWORD cbBuffer=16384; DWORD cEntries=-1; - CHAR szUser[MAXRANDOMNAMELEN]; + DWORD cbBuffer=16384; memset(szMachine, '\0', sizeof(szMachine)); GetNetbiosName(szMachine, NETBIOS_NAME_FULL); @@ -1010,21 +1009,26 @@ BOOL DoMapShareChange() GlobalFree((HGLOBAL)lpnrLocal); WNetCloseEnum(hEnum); sprintf(szPath,"\\\\%s\\all",szMachine); - cbBuffer=MAXRANDOMNAMELEN-1; + // Lets connect all submounts that weren't connectd + DWORD cbUser=MAXRANDOMNAMELEN-1; + CHAR szUser[MAXRANDOMNAMELEN]; CHAR * pUser = NULL; - if (WNetGetUser(szPath,(LPSTR)szUser,&cbBuffer)!=NO_ERROR) { + if (WNetGetUser(szPath,(LPSTR)szUser,&cbUser)!=NO_ERROR) { if (RWLogonOption(TRUE,LOGON_OPTION_HIGHSECURITY)) { - GenRandomName(szUser,MAXRANDOMNAMELEN-1); - pUser = szUser; + if (!pUserName[0]) { + GenRandomName(szUser,MAXRANDOMNAMELEN-1); + pUser = szUser; + } else { + pUser = pUserName; + } } } else { if ((pUser=strchr(szUser,'\\'))!=NULL) pUser++; - else - pUser = NULL; } - for (DWORD j=0;j