mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-12-03 15:43:37 +01:00
43 lines
1.9 KiB
Diff
43 lines
1.9 KiB
Diff
From 7aae27e71a89d2753226c4f8340560fd06ab4db1 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Fri, 12 Oct 2018 14:28:52 +0100
|
|
Subject: [PATCH] Ignore empty packets
|
|
|
|
This patch puts the proxy more inline with the client in that empty
|
|
packets will be ignored. While empty packets are a sign of bad plugins,
|
|
they are effectivly harmless vs the cost of the exception in general
|
|
|
|
diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java
|
|
index 776a0603..fa021598 100644
|
|
--- a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java
|
|
+++ b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java
|
|
@@ -45,6 +45,12 @@ public class MinecraftDecoder extends MessageToMessageDecoder<ByteBuf>
|
|
Object packetTypeInfo = null;
|
|
try
|
|
{
|
|
+ // Waterfall start
|
|
+ if (in.readableBytes() == 0 && !server) {
|
|
+ return;
|
|
+ }
|
|
+ // Waterfall end
|
|
+
|
|
int packetId = DefinedPacket.readVarInt( in );
|
|
packetTypeInfo = packetId;
|
|
|
|
diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java b/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java
|
|
index 277e70e8..cf7dea17 100644
|
|
--- a/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java
|
|
+++ b/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java
|
|
@@ -40,7 +40,7 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder
|
|
if ( buf[i] >= 0 )
|
|
{
|
|
int length = DefinedPacket.readVarInt( Unpooled.wrappedBuffer( buf ) );
|
|
- if ( length == 0 )
|
|
+ if ( false && length == 0) // Waterfall - ignore
|
|
{
|
|
throw new CorruptedFrameException( "Empty Packet!" );
|
|
}
|
|
--
|
|
2.42.0
|
|
|