DWORD dwValue;
DWORD rx_enable_peer_stats;
DWORD rx_enable_process_stats;
+ DWORD rx_udpbufsize = -1;
+ DWORD lockOrderValidation;
long traceBufSize;
long maxcpus;
long ltt, ltto;
osi_panic(buf, __FILE__, __LINE__);
}
+ dummyLen = sizeof(lockOrderValidation);
+ code = RegQueryValueEx(parmKey, "LockOrderValidation", NULL, NULL,
+ (BYTE *) &lockOrderValidation, &dummyLen);
+ if (code != ERROR_SUCCESS) {
+#ifdef DEBUG
+ lockOrderValidation = 1;
+#else
+ lockOrderValidation = 0;
+#endif
+ }
+ osi_SetLockOrderValidation(lockOrderValidation);
+ afsi_log("Lock Order Validation %s", lockOrderValidation ? "On" : "Off");
+
dummyLen = sizeof(maxcpus);
code = RegQueryValueEx(parmKey, "MaxCPUs", NULL, NULL,
(BYTE *) &maxcpus, &dummyLen);
code = RegQueryValueEx(parmKey, "SecurityLevel", NULL, NULL,
(BYTE *) &cryptall, &dummyLen);
if (code == ERROR_SUCCESS) {
- afsi_log("SecurityLevel is %s", cryptall?"crypt":"clear");
+ afsi_log("SecurityLevel is %s", cryptall == 1?"crypt": cryptall == 2?"auth":"clear");
} else {
cryptall = 0;
afsi_log("Default SecurityLevel is clear");
}
- if (cryptall)
+ if (cryptall == 1)
LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_CRYPT_ON);
+ else if (cryptall == 2)
+ LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_CRYPT_AUTH);
else
LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_CRYPT_OFF);
code = RegQueryValueEx(parmKey, "RxNoJumbo", NULL, NULL,
(BYTE *) &rx_nojumbo, &dummyLen);
if (code != ERROR_SUCCESS) {
- rx_nojumbo = 0;
+ DWORD jumbo;
+ dummyLen = sizeof(jumbo);
+ code = RegQueryValueEx(parmKey, "RxJumbo", NULL, NULL,
+ (BYTE *) &jumbo, &dummyLen);
+ if (code != ERROR_SUCCESS) {
+ rx_nojumbo = 1;
+ } else {
+ rx_nojumbo = !jumbo;
+ }
}
if (rx_nojumbo)
afsi_log("RX Jumbograms are disabled");
+ else
+ afsi_log("RX Jumbograms are enabled");
dummyLen = sizeof(rx_extraPackets);
code = RegQueryValueEx(parmKey, "RxExtraPackets", NULL, NULL,
(BYTE *) &rx_extraPackets, &dummyLen);
if (code != ERROR_SUCCESS) {
- rx_extraPackets = 120;
+ rx_extraPackets = (numBkgD + numSvThreads + 5) * 64;
}
if (rx_extraPackets)
afsi_log("RX extraPackets is %d", rx_extraPackets);
+ dummyLen = sizeof(rx_udpbufsize);
+ code = RegQueryValueEx(parmKey, "RxUdpBufSize", NULL, NULL,
+ (BYTE *) &rx_udpbufsize, &dummyLen);
+ if (code != ERROR_SUCCESS) {
+ rx_udpbufsize = 256*1024;
+ }
+ if (rx_udpbufsize != -1)
+ afsi_log("RX udpbufsize is %d", rx_udpbufsize);
+
dummyLen = sizeof(rx_mtu);
code = RegQueryValueEx(parmKey, "RxMaxMTU", NULL, NULL,
(BYTE *) &rx_mtu, &dummyLen);
afsi_log("rx_SetMaxMTU %d successful", rx_mtu);
}
+ if ( rx_udpbufsize != -1 ) {
+ rx_SetUdpBufSize(rx_udpbufsize);
+ afsi_log("rx_SetUdpBufSize %d", rx_udpbufsize);
+ }
+
/* initialize RX, and tell it to listen to the callbackport,
* which is used for callback RPC messages.
*/
*reasonP = "unknown error";
return -1;
}
+ rx_SetMinProcs(serverp, 2);
+ rx_SetMaxProcs(serverp, 4);
+ rx_SetCheckReach(serverp, 1);
nullServerSecurityClassp = rxnull_NewServerSecurityObject();
serverp = rx_NewService(0, RX_STATS_SERVICE_ID, "rpcstats",
*reasonP = "unknown error";
return -1;
}
+ rx_SetMinProcs(serverp, 2);
+ rx_SetMaxProcs(serverp, 4);
/* start server threads, *not* donating this one to the pool */
rx_StartServer(0);
{
cm_ReleaseSCache(cm_data.rootSCachep);
+ cm_shutdown = 1;
+
return 0;
}
void
GenerateMiniDump(PEXCEPTION_POINTERS ep)
{
- if (IsDebuggerPresent())
- return;
+ if (IsDebuggerPresent())
+ return;
if (ep == NULL)
{