clientchar_t cm_mountRootC[1024];
DWORD cm_mountRootCLen;
+int cm_readonlyVolumeVersioning = 0;
int cm_logChunkSize;
int cm_chunkSize;
HANDLE afsi_file;
-#ifdef AFS_AFSDB_ENV
int cm_dnsEnabled = 1;
-#endif
static int afsi_log_useTimestamp = 1;
lock_ObtainMutex(&tsp->mx);
tsp->ipRank = (USHORT)dwRank;
tsp->flags |= CM_SERVERFLAG_PREF_SET;
+ tsp->adminRank = tsp->ipRank;
lock_ReleaseMutex(&tsp->mx);
/* set preferences for an existing vlserver */
lock_ObtainMutex(&tsp->mx);
tsp->ipRank = (USHORT)dwRank;
tsp->flags |= CM_SERVERFLAG_PREF_SET;
+ tsp->adminRank = tsp->ipRank;
lock_ReleaseMutex(&tsp->mx);
}
}
{
lock_ObtainMutex(&tsp->mx);
tsp->ipRank = (USHORT)dwRank;
- tsp->flags |= CM_SERVERFLAG_PREF_SET;
+ tsp->flags |= CM_SERVERFLAG_PREF_SET;
+ tsp->adminRank = tsp->ipRank;
lock_ReleaseMutex(&tsp->mx);
/* find volumes which might have RO copy
lock_ObtainMutex(&tsp->mx);
tsp->ipRank = (USHORT)dwRank;
tsp->flags |= CM_SERVERFLAG_PREF_SET;
+ tsp->adminRank = tsp->ipRank;
lock_ReleaseMutex(&tsp->mx);
}
}
long maxcpus;
long ltt, ltto;
long rx_nojumbo;
+ int rx_max_rwin_size;
+ int rx_max_swin_size;
+ int rx_min_peer_timeout;
long virtualCache = 0;
fschar_t rootCellName[256];
struct rx_service *serverp;
osi_Log0(afsd_logp, "Log init");
+ dummyLen = sizeof(smb_monitorReqs);
+ code = RegQueryValueEx(parmKey, "SMBRequestMonitor", NULL, NULL,
+ (BYTE *) &smb_monitorReqs, &dummyLen);
+ afsi_log("SMB request monitoring is %s", (smb_monitorReqs != 0)? "enabled": "disabled");
+
dummyLen = sizeof(cacheSize);
code = RegQueryValueEx(parmKey, "CacheSize", NULL, NULL,
(BYTE *) &cacheSize, &dummyLen);
(BYTE *) &cm_anonvldb, &dummyLen);
afsi_log("CM ForceAnonVLDB is %s", cm_anonvldb ? "on" : "off");
-#ifdef AFS_AFSDB_ENV
dummyLen = sizeof(cm_dnsEnabled);
code = RegQueryValueEx(parmKey, "UseDNS", NULL, NULL,
(BYTE *) &cm_dnsEnabled, &dummyLen);
cm_dnsEnabled = 1; /* default on */
afsi_log("Default to use DNS to find AFS cell servers");
}
-#else /* AFS_AFSDB_ENV */
- afsi_log("AFS not built with DNS support to find AFS cell servers");
-#endif /* AFS_AFSDB_ENV */
#ifdef AFS_FREELANCE_CLIENT
dummyLen = sizeof(cm_freelanceEnabled);
code = RegQueryValueEx(parmKey, "FreelanceClient", NULL, NULL,
(BYTE *) &cm_freelanceEnabled, &dummyLen);
- if (code == ERROR_SUCCESS) {
- afsi_log("Freelance client feature %s activated",
- cm_freelanceEnabled ? "is" : "is not");
- }
- else {
- cm_freelanceEnabled = 1; /* default on */
- }
+ afsi_log("Freelance client feature %s activated",
+ cm_freelanceEnabled ? "is" : "is not");
+
+ dummyLen = sizeof(cm_freelanceImportCellServDB);
+ code = RegQueryValueEx(parmKey, "FreelanceImportCellServDB", NULL, NULL,
+ (BYTE *) &cm_freelanceImportCellServDB, &dummyLen);
+ afsi_log("Freelance client %s import CellServDB",
+ cm_freelanceImportCellServDB ? "does" : "does not");
#endif /* AFS_FREELANCE_CLIENT */
dummyLen = sizeof(smb_UseUnicode);
afsi_log("Dot files/dirs will %sbe marked hidden",
smb_hideDotFiles ? "" : "not ");
+ dummyLen = sizeof(dwValue);
+ code = RegQueryValueEx(parmKey, "UnixModeFileDefault", NULL, NULL,
+ (BYTE *) &dwValue, &dummyLen);
+ if (code == ERROR_SUCCESS) {
+ smb_unixModeDefaultFile = (dwValue & 07777);
+ }
+ afsi_log("Default unix mode bits for files is 0%04o", smb_unixModeDefaultFile);
+
+ dummyLen = sizeof(dwValue);
+ code = RegQueryValueEx(parmKey, "UnixModeDirDefault", NULL, NULL,
+ (BYTE *) &dwValue, &dummyLen);
+ if (code == ERROR_SUCCESS) {
+ smb_unixModeDefaultDir = (dwValue & 07777);
+ }
+ afsi_log("Default unix mode bits for directories is 0%04o", smb_unixModeDefaultDir);
+
dummyLen = sizeof(smb_maxMpxRequests);
code = RegQueryValueEx(parmKey, "MaxMpxRequests", NULL, NULL,
(BYTE *) &smb_maxMpxRequests, &dummyLen);
}
afsi_log("SMB authentication type is %s", ((smb_authType == SMB_AUTH_NONE)?"NONE":((smb_authType == SMB_AUTH_EXTENDED)?"EXTENDED":"NTLM")));
+ dummyLen = sizeof(rx_max_rwin_size);
+ code = RegQueryValueEx(parmKey, "RxMaxRecvWinSize", NULL, NULL,
+ (BYTE *) &rx_max_rwin_size, &dummyLen);
+ if (code == ERROR_SUCCESS)
+ rx_SetMaxReceiveWindow(rx_max_rwin_size);
+ afsi_log("Rx Maximum Receive Window Size is %d", rx_GetMaxReceiveWindow());
+
+ dummyLen = sizeof(rx_max_swin_size);
+ code = RegQueryValueEx(parmKey, "RxMaxSendWinSize", NULL, NULL,
+ (BYTE *) &rx_max_swin_size, &dummyLen);
+ if (code == ERROR_SUCCESS)
+ rx_SetMaxSendWindow(rx_max_swin_size);
+ afsi_log("Rx Maximum Send Window Size is %d", rx_GetMaxSendWindow());
+
+ dummyLen = sizeof(rx_min_peer_timeout);
+ code = RegQueryValueEx(parmKey, "RxMinPeerTimeout", NULL, NULL,
+ (BYTE *) &rx_min_peer_timeout, &dummyLen);
+ if (code == ERROR_SUCCESS)
+ rx_SetMinPeerTimeout(rx_min_peer_timeout);
+ afsi_log("Rx Minimum Peer Timeout is %d ms", rx_GetMinPeerTimeout());
+
+ dummyLen = sizeof(rx_pmtu_discovery);
+ code = RegQueryValueEx(parmKey, "RxPMTUDiscovery", NULL, NULL,
+ (BYTE *) &rx_pmtu_discovery, &dummyLen);
+ afsi_log("Rx PMTU Discovery is %d ms", rx_pmtu_discovery);
+
dummyLen = sizeof(rx_nojumbo);
code = RegQueryValueEx(parmKey, "RxNoJumbo", NULL, NULL,
(BYTE *) &rx_nojumbo, &dummyLen);
if (code == ERROR_SUCCESS) {
cm_OfflineROIsValid = (unsigned short) dwValue;
}
- afsi_log("CM OfflineReadOnlyIsValid is %u", cm_deleteReadOnly);
+ afsi_log("CM OfflineReadOnlyIsValid is %u", cm_OfflineROIsValid);
dummyLen = sizeof(DWORD);
code = RegQueryValueEx(parmKey, "GiveUpAllCallBacks", NULL, NULL,
}
afsi_log("CM PerFileAccessCheck is %d", cm_accessPerFileCheck);
+ dummyLen = sizeof(DWORD);
+ code = RegQueryValueEx(parmKey, "ReadOnlyVolumeVersioning", NULL, NULL,
+ (BYTE *) &dwValue, &dummyLen);
+ if (code == ERROR_SUCCESS) {
+ cm_readonlyVolumeVersioning = (unsigned short) dwValue;
+ }
+ afsi_log("CM ReadOnlyVolumeVersioning is %u", cm_readonlyVolumeVersioning);
+
RegCloseKey (parmKey);
cacheBlocks = ((afs_uint64)cacheSize * 1024) / blockSize;
return -1;
}
-#ifdef AFS_AFSDB_ENV
#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
if (cm_InitDNS(cm_dnsEnabled) == -1)
cm_dnsEnabled = 0; /* init failed, so deactivate */
afsi_log("cm_InitDNS %d", cm_dnsEnabled);
#endif
-#endif
/* Set RX parameters before initializing RX */
if ( rx_nojumbo ) {
static HANDLE
OpenDumpFile(void)
{
+ char tmp[256];
char wd[256];
+ SYSTEMTIME st;
DWORD code;
- code = GetEnvironmentVariable("TEMP", wd, sizeof(wd));
- if ( code == 0 || code > sizeof(wd) )
+ code = GetEnvironmentVariable("TEMP", tmp, sizeof(tmp));
+ if ( code == 0 || code > sizeof(tmp) )
{
- if (!GetWindowsDirectory(wd, sizeof(wd)))
+ if (!GetWindowsDirectory(tmp, sizeof(tmp)))
return NULL;
}
- StringCbCatA(wd, sizeof(wd), "\\afsd.dmp");
+ GetLocalTime(&st);
+ StringCbPrintfA(wd, sizeof(wd),
+ "%s\\afsd-%04d-%02d-%02d-%02d_%02d_%02d.dmp", tmp,
+ st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
return CreateFile( wd, GENERIC_WRITE, FILE_SHARE_READ, NULL,
CREATE_ALWAYS, FILE_FLAG_WRITE_THROUGH, NULL);
}