#3821: Fix race condition that leads to incorrect packet order

This commit is contained in:
Outfluencer 2025-04-19 07:32:34 +02:00 committed by GitHub
parent d81040cd6f
commit 26433bf021
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 7 deletions

View File

@ -55,6 +55,7 @@ import net.md_5.bungee.protocol.Protocol;
import net.md_5.bungee.protocol.ProtocolConstants; import net.md_5.bungee.protocol.ProtocolConstants;
import net.md_5.bungee.protocol.packet.BossBar; import net.md_5.bungee.protocol.packet.BossBar;
import net.md_5.bungee.protocol.packet.Commands; import net.md_5.bungee.protocol.packet.Commands;
import net.md_5.bungee.protocol.packet.FinishConfiguration;
import net.md_5.bungee.protocol.packet.KeepAlive; import net.md_5.bungee.protocol.packet.KeepAlive;
import net.md_5.bungee.protocol.packet.Kick; import net.md_5.bungee.protocol.packet.Kick;
import net.md_5.bungee.protocol.packet.Login; import net.md_5.bungee.protocol.packet.Login;
@ -801,6 +802,16 @@ public class DownstreamBridge extends PacketHandler
throw CancelSendSignal.INSTANCE; throw CancelSendSignal.INSTANCE;
} }
@Override
public void handle(FinishConfiguration finishConfiguration) throws Exception
{
// the clients protocol will change to GAME after this packet
con.unsafe().sendPacket( finishConfiguration );
// send queued packets as early as possible
con.sendQueuedPackets();
throw CancelSendSignal.INSTANCE;
}
@Override @Override
public String toString() public String toString()
{ {

View File

@ -33,7 +33,6 @@ import net.md_5.bungee.protocol.packet.ClientChat;
import net.md_5.bungee.protocol.packet.ClientCommand; import net.md_5.bungee.protocol.packet.ClientCommand;
import net.md_5.bungee.protocol.packet.ClientSettings; import net.md_5.bungee.protocol.packet.ClientSettings;
import net.md_5.bungee.protocol.packet.CookieResponse; import net.md_5.bungee.protocol.packet.CookieResponse;
import net.md_5.bungee.protocol.packet.FinishConfiguration;
import net.md_5.bungee.protocol.packet.KeepAlive; import net.md_5.bungee.protocol.packet.KeepAlive;
import net.md_5.bungee.protocol.packet.LoginAcknowledged; import net.md_5.bungee.protocol.packet.LoginAcknowledged;
import net.md_5.bungee.protocol.packet.LoginPayloadResponse; import net.md_5.bungee.protocol.packet.LoginPayloadResponse;
@ -367,12 +366,6 @@ public class UpstreamBridge extends PacketHandler
} }
} }
@Override
public void handle(FinishConfiguration finishConfiguration) throws Exception
{
con.sendQueuedPackets();
}
@Override @Override
public void handle(CookieResponse cookieResponse) throws Exception public void handle(CookieResponse cookieResponse) throws Exception
{ {