[Network]: Fix potential dead-lock (#1031)
This commit is contained in:
parent
d3775d2565
commit
2805c3fb2f
@ -409,6 +409,14 @@ namespace Components
|
|||||||
Utils::Hook::Set<std::uint8_t>(0x682170, 0xC3); // Telling LSP that we're playing a private match
|
Utils::Hook::Set<std::uint8_t>(0x682170, 0xC3); // Telling LSP that we're playing a private match
|
||||||
Utils::Hook::Nop(0x4FD448, 5); // Don't create lsp_socket
|
Utils::Hook::Nop(0x4FD448, 5); // Don't create lsp_socket
|
||||||
|
|
||||||
|
// Do not run UPNP stuff at all
|
||||||
|
Utils::Hook::Set<std::uint8_t>(0x48A135, 0xC3);
|
||||||
|
Utils::Hook::Set<std::uint8_t>(0x48A151, 0xC3);
|
||||||
|
Utils::Hook::Nop(0x684080, 5); // Don't spam the console
|
||||||
|
|
||||||
|
// Disable the IWNet IP detection (default 'got ipdetect' flag to 1)
|
||||||
|
Utils::Hook::Set<std::uint8_t>(0x649D6F0, 1);
|
||||||
|
|
||||||
OnClientPacket("resolveAddress", []([[maybe_unused]] const Address& address, [[maybe_unused]] const std::string& data)
|
OnClientPacket("resolveAddress", []([[maybe_unused]] const Address& address, [[maybe_unused]] const std::string& data)
|
||||||
{
|
{
|
||||||
SendRaw(address, address.getString());
|
SendRaw(address, address.getString());
|
||||||
|
@ -369,31 +369,6 @@ namespace Components
|
|||||||
// remove limit on IWD file loading
|
// remove limit on IWD file loading
|
||||||
Utils::Hook::Set<BYTE>(0x642BF3, 0xEB);
|
Utils::Hook::Set<BYTE>(0x642BF3, 0xEB);
|
||||||
|
|
||||||
// dont run UPNP stuff on main thread
|
|
||||||
Utils::Hook::Set<BYTE>(0x48A135, 0xC3);
|
|
||||||
Utils::Hook::Set<BYTE>(0x48A151, 0xC3);
|
|
||||||
Utils::Hook::Nop(0x684080, 5); // Don't spam the console
|
|
||||||
|
|
||||||
// spawn upnp thread when UPNP_init returns
|
|
||||||
Utils::Hook::Hook(0x47982B, []()
|
|
||||||
{
|
|
||||||
std::thread([]
|
|
||||||
{
|
|
||||||
Com_InitThreadData();
|
|
||||||
|
|
||||||
// check natpmpstate
|
|
||||||
// state 4 is no more devices to query
|
|
||||||
while (Utils::Hook::Get<int>(0x66CE200) < 4)
|
|
||||||
{
|
|
||||||
Utils::Hook::Call<void()>(0x4D7030)();
|
|
||||||
Game::Sys_Sleep(500);
|
|
||||||
}
|
|
||||||
}).detach();
|
|
||||||
}, HOOK_JUMP).install()->quick();
|
|
||||||
|
|
||||||
// disable the IWNet IP detection (default 'got ipdetect' flag to 1)
|
|
||||||
Utils::Hook::Set<BYTE>(0x649D6F0, 1);
|
|
||||||
|
|
||||||
// Fix stats sleeping
|
// Fix stats sleeping
|
||||||
Utils::Hook::Set<BYTE>(0x6832BA, 0xEB);
|
Utils::Hook::Set<BYTE>(0x6832BA, 0xEB);
|
||||||
Utils::Hook::Set<BYTE>(0x4BD190, 0xC3);
|
Utils::Hook::Set<BYTE>(0x4BD190, 0xC3);
|
||||||
|
Loading…
Reference in New Issue
Block a user