Add prefix patch to sync up useDtlsLayout argument

Workaround a much deeper, yet unknown issue
This commit is contained in:
miniduikboot committed 2022-03-03 22:01:19 +01:00
1 parent e58f8b5aef
commit 9b1211f505
1 file changed
+9
@@ -154,6 +154,15 @@ namespace Reactor.Networking.Patches
[HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.GetConnectionData))]
public static class HandshakePatch
{
public static void Prefix(ref bool useDtlsLayout)
{
// Due to reasons currently unknown, the useDtlsLayout parameter sometimes doesn't reflect whether DTLS
// is actually supposed to be enabled. This causes a bad handshake message and a quick disconnect.
// The field on AmongUsClient appears to be more reliable, so override this parameter with what it is supposed to be.
Logger<ReactorPlugin>.Info($"Currently using dtls: {useDtlsLayout}. Should use dtls: {AmongUsClient.Instance.useDtls}");
useDtlsLayout = AmongUsClient.Instance.useDtls;
}
public static void Postfix(ref Il2CppStructArray<byte> __result)
{
ModList.Update();