From e807ad9c20cac38d1a97e3c6dcbbbd84e18125f9 Mon Sep 17 00:00:00 2001 From: AlexProgrammerDE <40795980+AlexProgrammerDE@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:20:16 +0200 Subject: [PATCH] Add flow control to localsession to resolve race conditions --- .../java/org/geysermc/geyser/network/netty/LocalSession.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/org/geysermc/geyser/network/netty/LocalSession.java b/core/src/main/java/org/geysermc/geyser/network/netty/LocalSession.java index 958e88288..fdf6cd8c6 100644 --- a/core/src/main/java/org/geysermc/geyser/network/netty/LocalSession.java +++ b/core/src/main/java/org/geysermc/geyser/network/netty/LocalSession.java @@ -35,6 +35,7 @@ import org.checkerframework.checker.nullness.qual.NonNull; import org.geysermc.mcprotocollib.network.BuiltinFlags; import org.geysermc.mcprotocollib.network.codec.PacketCodecHelper; import org.geysermc.mcprotocollib.network.packet.PacketProtocol; +import org.geysermc.mcprotocollib.network.tcp.TcpFlowControlHandler; import org.geysermc.mcprotocollib.network.tcp.TcpPacketCodec; import org.geysermc.mcprotocollib.network.tcp.TcpPacketSizer; import org.geysermc.mcprotocollib.network.tcp.TcpSession; @@ -90,6 +91,8 @@ public final class LocalSession extends TcpSession { ChannelPipeline pipeline = channel.pipeline(); pipeline.addLast("sizer", new TcpPacketSizer(LocalSession.this, protocol.getPacketHeader().getLengthSize())); + + pipeline.addLast("flow-control", new TcpFlowControlHandler()); pipeline.addLast("codec", new TcpPacketCodec(LocalSession.this, true)); pipeline.addLast("manager", LocalSession.this);