Quellcode durchsuchen

Merge pull request #76 from lukezeman/fix/membership-probe-shutdown

Detach the membership probe at client shutdown
stan vor 4 Tagen
Ursprung
Commit
3ca8d43863
1 geänderte Dateien mit 10 neuen und 0 gelöschten Zeilen
  1. 10 0
      Sunrise/src/client/runtime/client_runtime_lifecycle.cpp

+ 10 - 0
Sunrise/src/client/runtime/client_runtime_lifecycle.cpp

@@ -12,6 +12,7 @@
 #include "../hooks/graphics/graphics_hook_lifecycle.h"
 #include "../hooks/inactivity/inactivity_override.h"
 #include "../hooks/infinite_ammo/infinite_ammo.h"
+#include "../hooks/membership_probe/membership_probe.h"
 #include "../hooks/network/runtime.h"
 #include "../hooks/noclip/runtime.h"
 #include "../hooks/package_trust/package_trust_bypass.h"
@@ -82,6 +83,15 @@ bool shutdown() noexcept {
         ReleaseSRWLockExclusive(&runtime::g_lock);
         return false;
     }
+    // Attached last, so it detaches first. The probe reads through a detour, so one left in
+    // place is a branch into code a later unload unmaps.
+    if (!hooks::membership_probe::uninstall()) {
+        core::log::write(core::log::Channel::client,
+                         core::log::Level::error,
+                         "ev=shutdown stage=membership_probe result=fail");
+        ReleaseSRWLockExclusive(&runtime::g_lock);
+        return false;
+    }
     hooks::bitmap::uninstall();
     hooks::bootflow::uninstall();
     hooks::infinite_ammo::uninstall();