mirror of
https://github.com/PaperMC/Waterfall.git
synced 2025-02-16 03:41:20 +01:00
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing BungeeCord Changes: 1a807731 #3567: Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.2 to 3.6.3 772ad995 #3566: Bump actions/setup-java from 3 to 4 2431c40a #3562: Bump io.netty:netty-bom from 4.1.100.Final to 4.1.101.Final 8144ae8d #3555: Bump com.mysql:mysql-connector-j from 8.1.0 to 8.2.0 0757c39a Attempt upgrade of resolver libraries
71 lines
2.7 KiB
Diff
71 lines
2.7 KiB
Diff
From 145c6a12317d0d9ec49a7902a461de1a178632f5 Mon Sep 17 00:00:00 2001
|
|
From: creeper123123321 <creeper123123321@gmail.com>
|
|
Date: Thu, 17 Jan 2019 03:25:59 +0000
|
|
Subject: [PATCH] Don't use a bytebuf for packet decoding
|
|
|
|
|
|
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 cf7dea17..3a802ca4 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
|
|
@@ -27,8 +27,7 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder
|
|
|
|
in.markReaderIndex();
|
|
|
|
- final byte[] buf = new byte[ 3 ];
|
|
- for ( int i = 0; i < buf.length; i++ )
|
|
+ for ( int i = 0; i < 3; i++ ) // Waterfall
|
|
{
|
|
if ( !in.isReadable() )
|
|
{
|
|
@@ -36,10 +35,13 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder
|
|
return;
|
|
}
|
|
|
|
- buf[i] = in.readByte();
|
|
- if ( buf[i] >= 0 )
|
|
+ // Waterfall start
|
|
+ byte read = in.readByte();
|
|
+ if ( read >= 0 )
|
|
{
|
|
- int length = DefinedPacket.readVarInt( Unpooled.wrappedBuffer( buf ) );
|
|
+ in.resetReaderIndex();
|
|
+ int length = DefinedPacket.readVarInt( in );
|
|
+ // Waterfall end
|
|
if ( false && length == 0) // Waterfall - ignore
|
|
{
|
|
throw new CorruptedFrameException( "Empty Packet!" );
|
|
@@ -49,25 +51,11 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder
|
|
{
|
|
in.resetReaderIndex();
|
|
return;
|
|
- } else
|
|
- {
|
|
- if ( in.hasMemoryAddress() )
|
|
- {
|
|
- out.add( in.readRetainedSlice( length ) );
|
|
- } else
|
|
- {
|
|
- if ( !DIRECT_WARNING )
|
|
- {
|
|
- DIRECT_WARNING = true;
|
|
- System.out.println( "Netty is not using direct IO buffers." );
|
|
- }
|
|
-
|
|
- // See https://github.com/SpigotMC/BungeeCord/issues/1717
|
|
- ByteBuf dst = ctx.alloc().directBuffer( length );
|
|
- in.readBytes( dst );
|
|
- out.add( dst );
|
|
- }
|
|
+ // Waterfall start
|
|
+ } else {
|
|
+ out.add(in.readRetainedSlice(length));
|
|
return;
|
|
+ // Waterfall end
|
|
}
|
|
}
|
|
}
|
|
--
|
|
2.43.0
|
|
|