[UPNP] Re-Enable UPNP in a separate thread
This commit is contained in:
parent
9324b318ae
commit
2e807e673f
@ -253,8 +253,27 @@ 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);
|
||||||
|
|
||||||
// Disable UPNP
|
// dont run UPNP stuff on main thread
|
||||||
Utils::Hook::Nop(0x60BE24, 5);
|
Utils::Hook::Set<BYTE>(0x48A135, 0xC3);
|
||||||
|
Utils::Hook::Set<BYTE>(0x48A151, 0xC3);
|
||||||
|
|
||||||
|
// spawn upnp thread when UPNP_init returns
|
||||||
|
Utils::Hook::Hook(0x47982B, []()
|
||||||
|
{
|
||||||
|
std::thread upnpThread([]()
|
||||||
|
{
|
||||||
|
// check natpmpstate
|
||||||
|
// state 4 is no more devices to query
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
if (Utils::Hook::Get<int>(0x66CE200) < 4)
|
||||||
|
{
|
||||||
|
Utils::Hook::Call<void()>(0x4D7030)();
|
||||||
|
}
|
||||||
|
std::this_thread::sleep_for(500ms);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, HOOK_JUMP);
|
||||||
|
|
||||||
// disable the IWNet IP detection (default 'got ipdetect' flag to 1)
|
// disable the IWNet IP detection (default 'got ipdetect' flag to 1)
|
||||||
Utils::Hook::Set<BYTE>(0x649D6F0, 1);
|
Utils::Hook::Set<BYTE>(0x649D6F0, 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user