mirror of
https://github.com/glest/glest-source.git
synced 2025-08-16 13:23:59 +02:00
- added reg file for windows users to manually disable packet throttling
- added console warning for windows users that have this setting enabled.
This commit is contained in:
5
mk/windoze/NetworkThrottleFix.reg
Normal file
5
mk/windoze/NetworkThrottleFix.reg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
REGEDIT4
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile]
|
||||||
|
"NetworkThrottlingIndex"=dword:ffffffff
|
||||||
|
|
@@ -4138,6 +4138,10 @@ int glestMain(int argc, char** argv) {
|
|||||||
setGameVersion(glestVersionString);
|
setGameVersion(glestVersionString);
|
||||||
setGameGITVersion(getRAWGITRevisionString());
|
setGameGITVersion(getRAWGITRevisionString());
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
CheckPacketThrottling();
|
||||||
|
#endif
|
||||||
|
|
||||||
if( hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_OPENGL_INFO]) == true ||
|
if( hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_OPENGL_INFO]) == true ||
|
||||||
hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_SDL_INFO]) == true ||
|
hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_SDL_INFO]) == true ||
|
||||||
hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_LUA_INFO]) == true ||
|
hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_LUA_INFO]) == true ||
|
||||||
|
@@ -109,6 +109,8 @@ void init_win32();
|
|||||||
void done_win32();
|
void done_win32();
|
||||||
void ontop_win32(int width, int height);
|
void ontop_win32(int width, int height);
|
||||||
|
|
||||||
|
void CheckPacketThrottling();
|
||||||
|
|
||||||
// The following is used for stacking tracing for windows based exceptions
|
// The following is used for stacking tracing for windows based exceptions
|
||||||
#if !defined(_DEBUG) && !defined(__GNUC__)
|
#if !defined(_DEBUG) && !defined(__GNUC__)
|
||||||
|
|
||||||
|
@@ -33,6 +33,7 @@
|
|||||||
#include <winsock.h>
|
#include <winsock.h>
|
||||||
#include <iphlpapi.h>
|
#include <iphlpapi.h>
|
||||||
#include <strstream>
|
#include <strstream>
|
||||||
|
#include <strsafe.h>
|
||||||
|
|
||||||
#define MSG_NOSIGNAL 0
|
#define MSG_NOSIGNAL 0
|
||||||
#define MSG_DONTWAIT 0
|
#define MSG_DONTWAIT 0
|
||||||
@@ -89,21 +90,6 @@ Mutex UPNP_Tools::mutexUPNP;
|
|||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
||||||
void DisablePacketThrottling() {
|
|
||||||
//Open the registry key.
|
|
||||||
wstring subKey = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile";
|
|
||||||
HKEY keyHandle;
|
|
||||||
DWORD dwDisposition;
|
|
||||||
RegCreateKeyEx(HKEY_LOCAL_MACHINE,subKey.c_str(),0, NULL, 0, KEY_ALL_ACCESS, NULL, &keyHandle, &dwDisposition);
|
|
||||||
//Set the value.
|
|
||||||
|
|
||||||
DWORD disableThrottle = 0xffffffff;
|
|
||||||
DWORD len = sizeof(disableThrottle);
|
|
||||||
RegSetValueEx(keyHandle, L"NetworkThrottlingIndex", 0, REG_DWORD, (const BYTE*)&disableThrottle, len);
|
|
||||||
RegCloseKey(keyHandle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#define socklen_t int
|
#define socklen_t int
|
||||||
#define MAXHOSTNAME 254
|
#define MAXHOSTNAME 254
|
||||||
|
|
||||||
@@ -242,7 +228,6 @@ void DisablePacketThrottling() {
|
|||||||
SocketManager Socket::wsaManager;
|
SocketManager Socket::wsaManager;
|
||||||
|
|
||||||
SocketManager::SocketManager() {
|
SocketManager::SocketManager() {
|
||||||
DisablePacketThrottling();
|
|
||||||
WSADATA wsaData;
|
WSADATA wsaData;
|
||||||
WORD wVersionRequested = MAKEWORD(2, 0);
|
WORD wVersionRequested = MAKEWORD(2, 0);
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("SocketManager calling WSAStartup...\n");
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("SocketManager calling WSAStartup...\n");
|
||||||
|
@@ -436,4 +436,47 @@ void done_win32() {
|
|||||||
::DestroyIcon(icon);
|
::DestroyIcon(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CheckPacketThrottling() {
|
||||||
|
static bool alreadyChecked = false;
|
||||||
|
if(alreadyChecked == true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
alreadyChecked = true;
|
||||||
|
//printf("Checking Windows Network Packet Throttle Setting...\n");
|
||||||
|
//Open the registry key.
|
||||||
|
wstring subKey = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile";
|
||||||
|
wstring Key = L"NetworkThrottlingIndex";
|
||||||
|
HKEY keyHandle;
|
||||||
|
DWORD dwDesiredThrottle = 0xffffffff;
|
||||||
|
//LONG reg_result = RegCreateKeyEx(HKEY_LOCAL_MACHINE,subKey.c_str(),0, NULL, 0, KEY_ALL_ACCESS, NULL, &keyHandle, &dwDisposition);
|
||||||
|
//LONG reg_result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,subKey.c_str(),0, KEY_ALL_ACCESS, &keyHandle);
|
||||||
|
LONG reg_result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,subKey.c_str(),0, KEY_QUERY_VALUE, &keyHandle);
|
||||||
|
|
||||||
|
if(reg_result != ERROR_SUCCESS) {
|
||||||
|
printf("\nError opening network throttle registry hive: %d\n",reg_result);
|
||||||
|
}
|
||||||
|
//Set the value.
|
||||||
|
|
||||||
|
DWORD disableThrottle = 0;
|
||||||
|
DWORD len = sizeof(DWORD);
|
||||||
|
|
||||||
|
reg_result = RegQueryValueEx(keyHandle, Key.c_str(), 0, 0, (LPBYTE) &disableThrottle, &len);
|
||||||
|
if(reg_result != ERROR_SUCCESS) {
|
||||||
|
printf("\nError opening network throttle registry key: %d\n",reg_result);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(disableThrottle != dwDesiredThrottle) {
|
||||||
|
printf("\n***WARNING*** Windows network throttling is enabled, value: %d\n",disableThrottle);
|
||||||
|
wprintf(L"Please set: HKEY_LOCAL_MACHINE\\%s\nKey: %s to the value: %X\n",subKey.c_str(),Key.c_str(),dwDesiredThrottle);
|
||||||
|
|
||||||
|
// disableThrottle = 0xffffffff;
|
||||||
|
// reg_result = RegSetValueEx(keyHandle, L"NetworkThrottlingIndex", 0, REG_DWORD, (LPBYTE) &disableThrottle, len);
|
||||||
|
// if(reg_result != ERROR_SUCCESS) {
|
||||||
|
// printf("Error setting network throttle registry key: %d [%s]\n",reg_result,getWindowsAPIError(reg_result).c_str());
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
RegCloseKey(keyHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}}//end namespace
|
}}//end namespace
|
||||||
|
Reference in New Issue
Block a user