#define PIOCTL_MAXSIZE 2048
-/*
- * REGISTRY ___________________________________________________________________
- *
- */
-
-static TCHAR cszLANMANDEVICE[] = TEXT("\\Device\\LanmanRedirector\\");
-const TCHAR AFSConfigKeyName[] = TEXT("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters");
-
/*
* ROUTINES ___________________________________________________________________
void Config_GetGatewayFlag (BOOL *pfFlag)
{
- if (!Config_ReadNum (TEXT("IsGateway"), (DWORD*)pfFlag))
+ if (!Config_ReadGlobalNum (TEXT("IsGateway"), (DWORD*)pfFlag))
*pfFlag = FALSE;
}
BOOL Config_SetGatewayFlag (BOOL fFlag, ULONG *pStatus)
{
- Config_WriteNum (TEXT("IsGateway"), fFlag);
+ Config_WriteGlobalNum (TEXT("IsGateway"), fFlag);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetGatewayName (LPTSTR pszName)
{
- if (!Config_ReadString (TEXT("Gateway"), pszName, MAX_PATH))
+ if (!Config_ReadGlobalString (TEXT("Gateway"), pszName, MAX_PATH))
GetString (pszName, IDS_GATEWAY_UNKNOWN);
else if (!*pszName)
GetString (pszName, IDS_GATEWAY_UNKNOWN);
GetString (szBogus, IDS_GATEWAY_UNKNOWN);
if (!lstrcmpi (szBogus, pszName))
{
- Config_WriteString (TEXT("Gateway"), TEXT(""));
+ Config_WriteGlobalString (TEXT("Gateway"), TEXT(""));
}
else
{
- Config_WriteString (TEXT("Gateway"), pszName);
+ Config_WriteGlobalString (TEXT("Gateway"), pszName);
}
return TRUE;
void Config_GetCellName (LPTSTR pszName)
{
- if (!Config_ReadString (TEXT("Cell"), pszName, MAX_PATH))
+ if (!Config_ReadGlobalString (TEXT("Cell"), pszName, MAX_PATH))
GetString (pszName, IDS_CELL_UNKNOWN);
else if (!*pszName)
GetString (pszName, IDS_CELL_UNKNOWN);
GetString (szBogus, IDS_CELL_UNKNOWN);
if (lstrcmpi (szBogus, pszName))
{
- Config_WriteString (TEXT("Cell"), pszName);
+ Config_WriteGlobalString (TEXT("Cell"), pszName);
g.fNeedRestart = TRUE;
}
return TRUE;
}
+#if 0
+/* These two functions are not needed as of the 1.2.2a updates.
+ The old implementation used to 'bind' afslogon.dll to the credentials manager
+ when the Integrated Logon was selected.
+ With version 1.2.2a afslogon.dll is always 'bound' to the credentials manager; therefore,
+ the binding operation is done during installation. Note: the Integrated Logon is
+ selected by an entry in the registry (LogonOptions).
+*/
void Config_GetAuthentFlag (BOOL *pfFlag)
{
*pfFlag = FALSE;
Message (MB_ICONHAND, GetErrorTitle(), IDS_FAILCONFIG_AUTHENT, TEXT("%ld"), status);
return rc;
}
-
+#endif
void Config_GetTrayIconFlag (BOOL *pfFlag)
{
- if (!Config_ReadNum (TEXT("ShowTrayIcon"), (DWORD*)pfFlag))
+ if (!Config_ReadUserNum (TEXT("ShowTrayIcon"), (DWORD*)pfFlag))
*pfFlag = FALSE;
}
BOOL Config_SetTrayIconFlag (BOOL fFlag, ULONG *pStatus)
{
- Config_WriteNum (TEXT("ShowTrayIcon"), fFlag);
+ Config_WriteUserNum (TEXT("ShowTrayIcon"), fFlag);
for (HWND hSearch = GetWindow (GetDesktopWindow(), GW_CHILD);
hSearch && IsWindow(hSearch);
void Config_GetCacheSize (ULONG *pckCache)
{
- if (!Config_ReadNum (TEXT("CacheSize"), (DWORD*)pckCache))
+ if (!Config_ReadGlobalNum (TEXT("CacheSize"), (DWORD*)pckCache))
*pckCache = CM_CONFIGDEFAULT_CACHESIZE;
}
if (rc)
{
- Config_WriteNum (TEXT("CacheSize"), ckCache);
+ Config_WriteGlobalNum (TEXT("CacheSize"), ckCache);
}
if (pStatus && !rc)
void Config_GetChunkSize (ULONG *pckChunk)
{
- if (!Config_ReadNum (TEXT("ChunkSize"), (DWORD*)pckChunk))
+ if (!Config_ReadGlobalNum (TEXT("ChunkSize"), (DWORD*)pckChunk))
*pckChunk = CM_CONFIGDEFAULT_CHUNKSIZE;
*pckChunk = max (*pckChunk, 10);
*pckChunk = (1 << ((*pckChunk)-10));
BOOL Config_SetChunkSize (ULONG ckChunk, ULONG *pStatus)
{
- Config_WriteNum (TEXT("ChunkSize"), log2(ckChunk * 1024));
+ Config_WriteGlobalNum (TEXT("ChunkSize"), log2(ckChunk * 1024));
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetStatEntries (ULONG *pcEntries)
{
- if (!Config_ReadNum (TEXT("Stats"), (DWORD*)pcEntries))
+ if (!Config_ReadGlobalNum (TEXT("Stats"), (DWORD*)pcEntries))
*pcEntries = CM_CONFIGDEFAULT_STATS;
}
BOOL Config_SetStatEntries (ULONG cEntries, ULONG *pStatus)
{
- Config_WriteNum (TEXT("Stats"), cEntries);
+ Config_WriteGlobalNum (TEXT("Stats"), cEntries);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetNumThreads (ULONG *pcThreads)
{
- if (!Config_ReadNum (TEXT("ServerThreads"), (DWORD*)pcThreads))
+ if (!Config_ReadGlobalNum (TEXT("ServerThreads"), (DWORD*)pcThreads))
*pcThreads = CM_CONFIGDEFAULT_SVTHREADS;
}
BOOL Config_SetNumThreads (ULONG cThreads, ULONG *pStatus)
{
- Config_WriteNum (TEXT("ServerThreads"), cThreads);
+ Config_WriteGlobalNum (TEXT("ServerThreads"), cThreads);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetNumDaemons (ULONG *pcDaemons)
{
- if (!Config_ReadNum (TEXT("Daemons"), (DWORD*)pcDaemons))
+ if (!Config_ReadGlobalNum (TEXT("Daemons"), (DWORD*)pcDaemons))
*pcDaemons = CM_CONFIGDEFAULT_DAEMONS;
}
BOOL Config_SetNumDaemons (ULONG cDaemons, ULONG *pStatus)
{
- Config_WriteNum (TEXT("Daemons"), cDaemons);
+ Config_WriteGlobalNum (TEXT("Daemons"), cDaemons);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetSysName (LPTSTR pszName)
{
- if (!Config_ReadString (TEXT("SysName"), pszName, MAX_PATH))
+ if (!Config_ReadGlobalString (TEXT("SysName"), pszName, MAX_PATH))
lstrcpy (pszName, TEXT("i386_nt40"));
}
if (rc)
{
- Config_WriteString (TEXT("SysName"), pszName);
+ Config_WriteGlobalString (TEXT("SysName"), pszName);
}
if (pStatus && !rc)
void Config_GetRootVolume (LPTSTR pszName)
{
- if (!Config_ReadString (TEXT("RootVolume"), pszName, MAX_PATH))
+ if (!Config_ReadGlobalString (TEXT("RootVolume"), pszName, MAX_PATH))
lstrcpy (pszName, TEXT("root.afs"));
}
BOOL Config_SetRootVolume (LPCTSTR pszName, ULONG *pStatus)
{
- Config_WriteString (TEXT("RootVolume"), pszName);
+ Config_WriteGlobalString (TEXT("RootVolume"), pszName);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetMountRoot (LPTSTR pszPath)
{
- if (!Config_ReadString (TEXT("MountRoot"), pszPath, MAX_PATH))
+ if (!Config_ReadGlobalString (TEXT("MountRoot"), pszPath, MAX_PATH))
lstrcpy (pszPath, TEXT("/afs"));
}
BOOL Config_SetMountRoot (LPCTSTR pszPath, ULONG *pStatus)
{
- Config_WriteString (TEXT("MountRoot"), pszPath);
+ Config_WriteGlobalString (TEXT("MountRoot"), pszPath);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetCachePath (LPTSTR pszCachePath)
{
- if (!Config_ReadString (TEXT("CachePath"), pszCachePath, MAX_PATH)) {
+ if (!Config_ReadGlobalString (TEXT("CachePath"), pszCachePath, MAX_PATH)) {
TCHAR szPath[MAX_PATH];
GetWindowsDirectory(szPath, sizeof(szPath));
szPath[2] = 0; /* get drive letter only */
BOOL Config_SetCachePath(LPCTSTR pszPath, ULONG *pStatus)
{
- Config_WriteString (TEXT("CachePath"), pszPath);
+ Config_WriteGlobalString (TEXT("CachePath"), pszPath);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetLanAdapter (ULONG *pnLanAdapter)
{
- if (!Config_ReadNum (TEXT("LANadapter"), (DWORD*)pnLanAdapter))
- *pnLanAdapter = 0;
+ if (!Config_ReadGlobalNum (TEXT("LANadapter"), (DWORD*)pnLanAdapter))
+ *pnLanAdapter = -1;
}
BOOL Config_SetLanAdapter (ULONG nLanAdapter, ULONG *pStatus)
{
- Config_WriteNum (TEXT("LANadapter"), nLanAdapter);
+ Config_WriteGlobalNum (TEXT("LANadapter"), nLanAdapter);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetTrapOnPanic (BOOL *pfFlag)
{
- if (!Config_ReadNum (TEXT("TrapOnPanic"), (DWORD*)pfFlag))
+ if (!Config_ReadGlobalNum (TEXT("TrapOnPanic"), (DWORD*)pfFlag))
*pfFlag = TRUE;
}
BOOL Config_SetTrapOnPanic (BOOL fFlag, ULONG *pStatus)
{
- Config_WriteNum (TEXT("TrapOnPanic"), fFlag);
+ Config_WriteGlobalNum (TEXT("TrapOnPanic"), fFlag);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetTraceBufferSize (ULONG *pnBufSize)
{
- if (!Config_ReadNum (TEXT("TraceBufferSize"), (DWORD*)pnBufSize))
+ if (!Config_ReadGlobalNum (TEXT("TraceBufferSize"), (DWORD*)pnBufSize))
*pnBufSize = 5000;
}
BOOL Config_SetTraceBufferSize (ULONG nBufSize, ULONG *pStatus)
{
- Config_WriteNum (TEXT("TraceBufferSize"), nBufSize);
+ Config_WriteGlobalNum (TEXT("TraceBufferSize"), nBufSize);
g.fNeedRestart = TRUE;
return TRUE;
}
void Config_GetLoginRetryInterval (ULONG *pnInterval)
{
- if (!Config_ReadNum (TEXT("LoginRetryInterval"), (DWORD*)pnInterval))
+ if (!Config_ReadGlobalNum (TEXT("LoginRetryInterval"), (DWORD*)pnInterval))
*pnInterval = 30;
}
BOOL Config_SetLoginRetryInterval (ULONG nInterval, ULONG *pStatus)
{
- Config_WriteNum (TEXT("LoginRetryInterval"), nInterval);
+ Config_WriteGlobalNum (TEXT("LoginRetryInterval"), nInterval);
return TRUE;
}
void Config_GetFailLoginsSilently (BOOL *pfFlag)
{
- if (!Config_ReadNum (TEXT("FailLoginsSilently"), (DWORD*)pfFlag))
+ if (!Config_ReadGlobalNum (TEXT("FailLoginsSilently"), (DWORD*)pfFlag))
*pfFlag = FALSE;
}
BOOL Config_SetFailLoginsSilently (BOOL fFlag, ULONG *pStatus)
{
- Config_WriteNum (TEXT("FailLoginsSilently"), fFlag);
+ Config_WriteGlobalNum (TEXT("FailLoginsSilently"), fFlag);
return TRUE;
}
void Config_GetReportSessionStartups (BOOL *pfFlag)
{
- if (!Config_ReadNum (TEXT("ReportSessionStartups"), (DWORD*)pfFlag))
+ if (!Config_ReadGlobalNum (TEXT("ReportSessionStartups"), (DWORD*)pfFlag))
*pfFlag = FALSE;
}
BOOL Config_SetReportSessionStartups (BOOL fFlag, ULONG *pStatus)
{
- Config_WriteNum (TEXT("ReportSessionStartups"), fFlag);
+ Config_WriteGlobalNum (TEXT("ReportSessionStartups"), fFlag);
return TRUE;
}
-void Config_GetGlobalDriveList (DRIVEMAPLIST *pDriveList)
-{
- // Read the GlobalAutoMapper registry key
- TCHAR szDriveToMapTo[5];
- DWORD dwResult;
- TCHAR szKeyName[256];
- HKEY hKey;
- DWORD dwIndex = 0;
- DWORD dwDriveSize;
- DWORD dwSubMountSize;
- TCHAR szSubMount[256];
- DWORD dwType;
-
- if (!pDriveList)
- return;
-
- memset(pDriveList, 0, sizeof(DRIVEMAPLIST));
-
- lstrcpy(szKeyName, AFSConfigKeyName);
- lstrcat(szKeyName, TEXT("\\GlobalAutoMapper"));
-
- dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, KEY_QUERY_VALUE, &hKey);
- if (dwResult != ERROR_SUCCESS)
- return;
-
- // Get the drive map list so we can lookup the paths that go with our submounts
- DRIVEMAPLIST DriveMapList;
- memset(&DriveMapList, 0, sizeof(DRIVEMAPLIST));
- QueryDriveMapList (&DriveMapList);
-
- while (1) {
- dwDriveSize = sizeof(szDriveToMapTo);
- dwSubMountSize = sizeof(szSubMount);
-
- dwResult = RegEnumValue(hKey, dwIndex++, szDriveToMapTo, &dwDriveSize, 0, &dwType, (BYTE*)szSubMount, &dwSubMountSize);
- if (dwResult != ERROR_SUCCESS)
- break;
-
- szDriveToMapTo[0] = _totupper(szDriveToMapTo[0]);
-
- int nCurDrive = szDriveToMapTo[0] - TEXT('A');
-
- pDriveList->aDriveMap[nCurDrive].chDrive = szDriveToMapTo[0];
- lstrcpy(pDriveList->aDriveMap[nCurDrive].szSubmount, szSubMount);
-
- // Find the path that goes with this submount
- SubmountToPath (&DriveMapList, pDriveList->aDriveMap[nCurDrive].szMapping, szSubMount, FALSE);
- }
-
- FreeDriveMapList(&DriveMapList);
-
- RegCloseKey(hKey);
-}
-
-
-/*
- * Configuration Read/Modify Functions ________________________________________
- *
- * Temporarily these just modify the local Registry.
- * In the near future, they will modify the Registry on the
- * gateway, if a gateway is being used.
- *
- */
-
-BOOL Config_ReadNum (LPCTSTR pszLHS, DWORD *pdwRHS)
-{
- HKEY hk;
- if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, AFSConfigKeyName, 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
- return FALSE;
-
- DWORD dwSize = sizeof(*pdwRHS);
- if (RegQueryValueEx (hk, pszLHS, NULL, NULL, (PBYTE)pdwRHS, &dwSize) != ERROR_SUCCESS)
- {
- RegCloseKey (hk);
- return FALSE;
- }
-
- RegCloseKey (hk);
- return TRUE;
-}
-
-
-BOOL Config_ReadString (LPCTSTR pszLHS, LPTSTR pszRHS, size_t cchMax)
-{
- HKEY hk;
- if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, AFSConfigKeyName, 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
- return FALSE;
-
- DWORD dwSize = sizeof(TCHAR) * cchMax;
- if (RegQueryValueEx (hk, pszLHS, NULL, NULL, (PBYTE)pszRHS, &dwSize) != ERROR_SUCCESS)
- {
- RegCloseKey (hk);
- return FALSE;
- }
-
- RegCloseKey (hk);
- return TRUE;
-}
-
-
-void Config_WriteNum (LPCTSTR pszLHS, DWORD dwRHS)
-{
- HKEY hk;
- DWORD dwDisp;
- if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, AFSConfigKeyName, 0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
- {
- RegSetValueEx (hk, pszLHS, NULL, REG_DWORD, (PBYTE)&dwRHS, sizeof(dwRHS));
- RegCloseKey (hk);
- }
-}
-
-
-void Config_WriteString (LPCTSTR pszLHS, LPCTSTR pszRHS)
-{
- HKEY hk;
- DWORD dwDisp;
- if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, AFSConfigKeyName, 0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
- {
- RegSetValueEx (hk, pszLHS, NULL, REG_SZ, (PBYTE)pszRHS, sizeof(TCHAR) * (1+lstrlen(pszRHS)));
- RegCloseKey (hk);
- }
-}
-