public class io.netty.handler.codec.haproxy.HAProxyMessageDecoder extends io.netty.handler.codec.ByteToMessageDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.haproxy.HAProxyMessageDecoder
super_class: io.netty.handler.codec.ByteToMessageDecoder
{
private static final int V1_MAX_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 108
private static final int V2_MAX_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65551
private static final int V2_MIN_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 232
private static final int V2_MAX_TLV;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65319
private static final int DELIMITER_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final byte[] BINARY_PREFIX;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] TEXT_PREFIX;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int BINARY_PREFIX_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final io.netty.handler.codec.ProtocolDetectionResult<io.netty.handler.codec.haproxy.HAProxyProtocolVersion> DETECTION_RESULT_V1;
descriptor: Lio/netty/handler/codec/ProtocolDetectionResult;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lio/netty/handler/codec/ProtocolDetectionResult<Lio/netty/handler/codec/haproxy/HAProxyProtocolVersion;>;
private static final io.netty.handler.codec.ProtocolDetectionResult<io.netty.handler.codec.haproxy.HAProxyProtocolVersion> DETECTION_RESULT_V2;
descriptor: Lio/netty/handler/codec/ProtocolDetectionResult;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lio/netty/handler/codec/ProtocolDetectionResult<Lio/netty/handler/codec/haproxy/HAProxyProtocolVersion;>;
private boolean discarding;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int discardedBytes;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean finished;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int version;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final int v2MaxHeaderSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 12
newarray 8
dup
iconst_0
1: bipush 13
bastore
dup
iconst_1
2: bipush 10
bastore
dup
iconst_2
3: bipush 13
bastore
dup
iconst_3
4: bipush 10
bastore
dup
iconst_5
5: bipush 13
bastore
dup
bipush 6
6: bipush 10
bastore
dup
bipush 7
7: bipush 81
bastore
dup
bipush 8
8: bipush 85
bastore
dup
bipush 9
9: bipush 73
bastore
dup
bipush 10
10: bipush 84
bastore
dup
bipush 11
11: bipush 10
bastore
12: putstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.BINARY_PREFIX:[B
13: iconst_5
newarray 8
dup
iconst_0
14: bipush 80
bastore
dup
iconst_1
15: bipush 82
bastore
dup
iconst_2
16: bipush 79
bastore
dup
iconst_3
17: bipush 88
bastore
dup
iconst_4
18: bipush 89
bastore
19: putstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.TEXT_PREFIX:[B
20: getstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.BINARY_PREFIX:[B
arraylength
putstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.BINARY_PREFIX_LENGTH:I
21: getstatic io.netty.handler.codec.haproxy.HAProxyProtocolVersion.V1:Lio/netty/handler/codec/haproxy/HAProxyProtocolVersion;
invokestatic io.netty.handler.codec.ProtocolDetectionResult.detected:(Ljava/lang/Object;)Lio/netty/handler/codec/ProtocolDetectionResult;
22: putstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.DETECTION_RESULT_V1:Lio/netty/handler/codec/ProtocolDetectionResult;
23: getstatic io.netty.handler.codec.haproxy.HAProxyProtocolVersion.V2:Lio/netty/handler/codec/haproxy/HAProxyProtocolVersion;
invokestatic io.netty.handler.codec.ProtocolDetectionResult.detected:(Ljava/lang/Object;)Lio/netty/handler/codec/ProtocolDetectionResult;
24: putstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.DETECTION_RESULT_V2:Lio/netty/handler/codec/ProtocolDetectionResult;
25: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
1: aload 0
iconst_m1
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.version:I
2: aload 0
ldc 65551
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
1: aload 0
iconst_m1
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.version:I
2: iload 1
iconst_1
if_icmpge 5
3: aload 0
sipush 232
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
4: goto 13
StackMap locals: io.netty.handler.codec.haproxy.HAProxyMessageDecoder int
StackMap stack:
5: iload 1
ldc 65319
if_icmple 8
6: aload 0
ldc 65551
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
7: goto 13
8: StackMap locals:
StackMap stack:
iload 1
sipush 232
iadd
istore 2
start local 2 9: iload 2
ldc 65551
if_icmple 12
10: aload 0
ldc 65551
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
11: goto 13
12: StackMap locals: int
StackMap stack:
aload 0
iload 2
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
end local 2 13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 14 1 maxTlvSize I
9 13 2 calcMax I
MethodParameters:
Name Flags
maxTlvSize
private static int findVersion(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 1
start local 1 1: iload 1
bipush 13
if_icmpge 3
2: iconst_m1
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 2
start local 2 4: getstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.BINARY_PREFIX:[B
aload 0
iload 2
invokestatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.match:([BLio/netty/buffer/ByteBuf;I)Z
ifeq 5
aload 0
iload 2
getstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.BINARY_PREFIX_LENGTH:I
iadd
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
goto 6
StackMap locals: int
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 buffer Lio/netty/buffer/ByteBuf;
1 7 1 n I
4 7 2 idx I
MethodParameters:
Name Flags
buffer final
private static int findEndOfHeader(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 1
start local 1 1: iload 1
bipush 16
if_icmpge 3
2: iconst_m1
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
bipush 14
iadd
istore 2
start local 2 4: bipush 16
aload 0
iload 2
invokevirtual io.netty.buffer.ByteBuf.getUnsignedShort:(I)I
iadd
istore 3
start local 3 5: iload 1
iload 3
if_icmplt 7
6: iload 3
ireturn
7: StackMap locals: int int
StackMap stack:
iconst_m1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 buffer Lio/netty/buffer/ByteBuf;
1 8 1 n I
4 8 2 offset I
5 8 3 totalHeaderBytes I
MethodParameters:
Name Flags
buffer final
private static int findEndOfLine(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
istore 1
start local 1 1: aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 2
start local 2 2: goto 7
3: StackMap locals: int int
StackMap stack:
aload 0
iload 2
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
istore 3
start local 3 4: iload 3
bipush 13
if_icmpne 6
iload 2
iload 1
iconst_1
isub
if_icmpge 6
aload 0
iload 2
iconst_1
iadd
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 10
if_icmpne 6
5: iload 2
ireturn
end local 3 6: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
iload 1
if_icmplt 3
end local 2 8: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 buffer Lio/netty/buffer/ByteBuf;
1 9 1 n I
2 8 2 i I
4 6 3 b B
MethodParameters:
Name Flags
buffer final
public boolean isSingleDecode();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
public void channelRead(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial io.netty.handler.codec.ByteToMessageDecoder.channelRead:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
1: aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.finished:Z
ifeq 3
2: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
aload 0
invokeinterface io.netty.channel.ChannelPipeline.remove:(Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 4 2 msg Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
protected final void decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List<java.lang.Object>);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.version:I
iconst_m1
if_icmpne 3
1: aload 0
aload 2
invokestatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.findVersion:(Lio/netty/buffer/ByteBuf;)I
dup_x1
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.version:I
iconst_m1
if_icmpne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.version:I
iconst_1
if_icmpne 6
4: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.decodeLine:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf;
astore 4
start local 4 5: goto 7
end local 4 6: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.decodeStruct:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf;
astore 4
start local 4 7: StackMap locals: io.netty.buffer.ByteBuf
StackMap stack:
aload 4
ifnull 16
8: aload 0
iconst_1
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.finished:Z
9: aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.version:I
iconst_1
if_icmpne 12
10: aload 3
aload 4
getstatic io.netty.util.CharsetUtil.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual io.netty.buffer.ByteBuf.toString:(Ljava/nio/charset/Charset;)Ljava/lang/String;
invokestatic io.netty.handler.codec.haproxy.HAProxyMessage.decodeHeader:(Ljava/lang/String;)Lio/netty/handler/codec/haproxy/HAProxyMessage;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: goto 16
12: StackMap locals:
StackMap stack:
aload 3
aload 4
invokestatic io.netty.handler.codec.haproxy.HAProxyMessage.decodeHeader:(Lio/netty/buffer/ByteBuf;)Lio/netty/handler/codec/haproxy/HAProxyMessage;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: goto 16
StackMap locals:
StackMap stack: io.netty.handler.codec.haproxy.HAProxyProtocolException
14: astore 5
start local 5 15: aload 0
aload 1
aconst_null
aload 5
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.fail:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;Ljava/lang/Exception;)V
end local 5 16: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 17 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 17 2 in Lio/netty/buffer/ByteBuf;
0 17 3 out Ljava/util/List<Ljava/lang/Object;>;
5 6 4 decoded Lio/netty/buffer/ByteBuf;
7 17 4 decoded Lio/netty/buffer/ByteBuf;
15 16 5 e Lio/netty/handler/codec/haproxy/HAProxyProtocolException;
Exception table:
from to target type
9 13 14 Class io.netty.handler.codec.haproxy.HAProxyProtocolException
Exceptions:
throws java.lang.Exception
Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List<Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
ctx
in
out
private io.netty.buffer.ByteBuf decodeStruct(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.findEndOfHeader:(Lio/netty/buffer/ByteBuf;)I
istore 3
start local 3 1: aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discarding:Z
ifne 16
2: iload 3
iflt 9
3: iload 3
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
isub
istore 4
start local 4 4: iload 4
aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
if_icmple 8
5: aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
6: aload 0
aload 1
iload 4
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.failOverLimit:(Lio/netty/channel/ChannelHandlerContext;I)V
7: aconst_null
areturn
8: StackMap locals: int int
StackMap stack:
aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.readSlice:(I)Lio/netty/buffer/ByteBuf;
areturn
end local 4 9: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 4
start local 4 10: iload 4
aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
if_icmple 15
11: aload 0
iload 4
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
12: aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
13: aload 0
iconst_1
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discarding:Z
14: aload 0
aload 1
new java.lang.StringBuilder
dup
ldc "over "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.failOverLimit:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
15: StackMap locals: int
StackMap stack:
aconst_null
areturn
end local 4 16: StackMap locals:
StackMap stack:
iload 3
iflt 21
17: aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
18: aload 0
iconst_0
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
19: aload 0
iconst_0
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discarding:Z
20: goto 23
21: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
22: aload 2
aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
23: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 24 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 24 2 buffer Lio/netty/buffer/ByteBuf;
1 24 3 eoh I
4 9 4 length I
10 16 4 length I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
buffer
private io.netty.buffer.ByteBuf decodeLine(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Lio/netty/buffer/ByteBuf;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.findEndOfLine:(Lio/netty/buffer/ByteBuf;)I
istore 3
start local 3 1: aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discarding:Z
ifne 18
2: iload 3
iflt 11
3: iload 3
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
isub
istore 4
start local 4 4: iload 4
bipush 108
if_icmple 8
5: aload 2
iload 3
iconst_2
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
6: aload 0
aload 1
iload 4
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.failOverLimit:(Lio/netty/channel/ChannelHandlerContext;I)V
7: aconst_null
areturn
8: StackMap locals: int int
StackMap stack:
aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.readSlice:(I)Lio/netty/buffer/ByteBuf;
astore 5
start local 5 9: aload 2
iconst_2
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
10: aload 5
areturn
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 4
start local 4 12: iload 4
bipush 108
if_icmple 17
13: aload 0
iload 4
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
14: aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
15: aload 0
iconst_1
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discarding:Z
16: aload 0
aload 1
new java.lang.StringBuilder
dup
ldc "over "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.failOverLimit:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
17: StackMap locals: int
StackMap stack:
aconst_null
areturn
end local 4 18: StackMap locals:
StackMap stack:
iload 3
iflt 26
19: aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 13
if_icmpne 20
iconst_2
goto 21
StackMap locals:
StackMap stack:
20: iconst_1
StackMap locals:
StackMap stack: int
21: istore 4
start local 4 22: aload 2
iload 3
iload 4
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
23: aload 0
iconst_0
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
24: aload 0
iconst_0
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discarding:Z
end local 4 25: goto 28
26: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
27: aload 2
aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.discardedBytes:I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
28: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 29 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 29 2 buffer Lio/netty/buffer/ByteBuf;
1 29 3 eol I
4 11 4 length I
9 11 5 frame Lio/netty/buffer/ByteBuf;
12 18 4 length I
22 25 4 delimLength I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
buffer
private void failOverLimit(io.netty.channel.ChannelHandlerContext, int);
descriptor: (Lio/netty/channel/ChannelHandlerContext;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.failOverLimit:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 2 2 length I
MethodParameters:
Name Flags
ctx final
length
private void failOverLimit(io.netty.channel.ChannelHandlerContext, java.lang.String);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.version:I
iconst_1
if_icmpne 1
bipush 108
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.v2MaxHeaderSize:I
StackMap locals:
StackMap stack: int
2: istore 3
start local 3 3: aload 0
aload 1
new java.lang.StringBuilder
dup
ldc "header length ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") exceeds the allowed maximum ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
invokevirtual io.netty.handler.codec.haproxy.HAProxyMessageDecoder.fail:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;Ljava/lang/Exception;)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 5 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 5 2 length Ljava/lang/String;
3 5 3 maxLength I
MethodParameters:
Name Flags
ctx final
length
private void fail(io.netty.channel.ChannelHandlerContext, java.lang.String, java.lang.Exception);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;Ljava/lang/Exception;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_1
putfield io.netty.handler.codec.haproxy.HAProxyMessageDecoder.finished:Z
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
2: aload 2
ifnull 5
aload 3
ifnull 5
3: new io.netty.handler.codec.haproxy.HAProxyProtocolException
dup
aload 2
aload 3
invokespecial io.netty.handler.codec.haproxy.HAProxyProtocolException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
astore 4
start local 4 4: goto 12
end local 4 StackMap locals:
StackMap stack:
5: aload 2
ifnull 8
6: new io.netty.handler.codec.haproxy.HAProxyProtocolException
dup
aload 2
invokespecial io.netty.handler.codec.haproxy.HAProxyProtocolException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 7: goto 12
end local 4 StackMap locals:
StackMap stack:
8: aload 3
ifnull 11
9: new io.netty.handler.codec.haproxy.HAProxyProtocolException
dup
aload 3
invokespecial io.netty.handler.codec.haproxy.HAProxyProtocolException.<init>:(Ljava/lang/Throwable;)V
astore 4
start local 4 10: goto 12
end local 4 11: StackMap locals:
StackMap stack:
new io.netty.handler.codec.haproxy.HAProxyProtocolException
dup
invokespecial io.netty.handler.codec.haproxy.HAProxyProtocolException.<init>:()V
astore 4
start local 4 12: StackMap locals: io.netty.handler.codec.haproxy.HAProxyProtocolException
StackMap stack:
aload 4
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/netty/handler/codec/haproxy/HAProxyMessageDecoder;
0 13 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 13 2 errMsg Ljava/lang/String;
0 13 3 e Ljava/lang/Exception;
4 5 4 ppex Lio/netty/handler/codec/haproxy/HAProxyProtocolException;
7 8 4 ppex Lio/netty/handler/codec/haproxy/HAProxyProtocolException;
10 11 4 ppex Lio/netty/handler/codec/haproxy/HAProxyProtocolException;
12 13 4 ppex Lio/netty/handler/codec/haproxy/HAProxyProtocolException;
MethodParameters:
Name Flags
ctx final
errMsg
e
public static io.netty.handler.codec.ProtocolDetectionResult<io.netty.handler.codec.haproxy.HAProxyProtocolVersion> detectProtocol(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)Lio/netty/handler/codec/ProtocolDetectionResult;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
bipush 12
if_icmpge 2
1: invokestatic io.netty.handler.codec.ProtocolDetectionResult.needsMoreData:()Lio/netty/handler/codec/ProtocolDetectionResult;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 1
start local 1 3: getstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.BINARY_PREFIX:[B
aload 0
iload 1
invokestatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.match:([BLio/netty/buffer/ByteBuf;I)Z
ifeq 5
4: getstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.DETECTION_RESULT_V2:Lio/netty/handler/codec/ProtocolDetectionResult;
areturn
5: StackMap locals: int
StackMap stack:
getstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.TEXT_PREFIX:[B
aload 0
iload 1
invokestatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.match:([BLio/netty/buffer/ByteBuf;I)Z
ifeq 7
6: getstatic io.netty.handler.codec.haproxy.HAProxyMessageDecoder.DETECTION_RESULT_V1:Lio/netty/handler/codec/ProtocolDetectionResult;
areturn
7: StackMap locals:
StackMap stack:
invokestatic io.netty.handler.codec.ProtocolDetectionResult.invalid:()Lio/netty/handler/codec/ProtocolDetectionResult;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 buffer Lio/netty/buffer/ByteBuf;
3 8 1 idx I
Signature: (Lio/netty/buffer/ByteBuf;)Lio/netty/handler/codec/ProtocolDetectionResult<Lio/netty/handler/codec/haproxy/HAProxyProtocolVersion;>;
MethodParameters:
Name Flags
buffer
private static boolean match(byte[], io.netty.buffer.ByteBuf, int);
descriptor: ([BLio/netty/buffer/ByteBuf;I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 6
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
iload 3
iadd
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
istore 4
start local 4 3: iload 4
aload 0
iload 3
baload
if_icmpeq 5
4: iconst_0
ireturn
end local 4 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 0
arraylength
if_icmplt 2
end local 3 7: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 prefix [B
0 8 1 buffer Lio/netty/buffer/ByteBuf;
0 8 2 idx I
1 7 3 i I
3 5 4 b B
MethodParameters:
Name Flags
prefix
buffer
idx
}
SourceFile: "HAProxyMessageDecoder.java"