Try to decode multiple packets at once

This commit is contained in:
Andrew Steinborn
2019-11-15 00:39:11 -05:00
parent d333eb30b8
commit ba8629ca0e

View File

@@ -11,10 +11,7 @@ public class MinecraftVarintFrameDecoder extends ByteToMessageDecoder {
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {
if (!in.isReadable()) {
return;
}
read_lens: while (in.isReadable()) {
int origReaderIndex = in.readerIndex();
for (int i = 0; i < 3; i++) {
if (!in.isReadable()) {
@@ -30,14 +27,15 @@ public class MinecraftVarintFrameDecoder extends ByteToMessageDecoder {
if (in.readableBytes() >= packetLength) {
out.add(in.readRetainedSlice(packetLength));
continue read_lens;
} else {
in.readerIndex(origReaderIndex);
}
return;
}
}
}
throw new CorruptedFrameException("VarInt too big");
}
}
}