diff --git a/server/netty/src/com/riiablo/server/d2gs/Main.java b/server/netty/src/com/riiablo/server/d2gs/Main.java index 0225129a..319924b5 100644 --- a/server/netty/src/com/riiablo/server/d2gs/Main.java +++ b/server/netty/src/com/riiablo/server/d2gs/Main.java @@ -75,19 +75,7 @@ public class Main extends ApplicationAdapter implements PacketProcessor { Main.this.endpoint = endpoint; ch.pipeline() .addFirst(connectionLimiter) - .addLast(new ByteToMessageDecoder() { - @Override - protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception { - if (in.readableBytes() < 4) return; - in.markReaderIndex(); - final int length = in.readIntLE(); - if (in.readableBytes() < length) { - in.resetReaderIndex(); - return; - } - out.add(in.readRetainedSlice(length)); - } - }) + .addLast(new SizePrefixedDecoder()) .addLast(new EndpointedChannelHandler<>(ByteBuf.class, endpoint)) ; } @@ -253,4 +241,18 @@ public class Main extends ApplicationAdapter implements PacketProcessor { return this; } } + + private static class SizePrefixedDecoder extends ByteToMessageDecoder { + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception { + if (in.readableBytes() < 4) return; + in.markReaderIndex(); + final int length = in.readIntLE(); + if (in.readableBytes() < length) { + in.resetReaderIndex(); + return; + } + out.add(in.readRetainedSlice(length)); + } + } }