public class io.netty.handler.codec.socksx.v4.Socks4ServerDecoder extends io.netty.handler.codec.ReplayingDecoder<io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder
super_class: io.netty.handler.codec.ReplayingDecoder
{
private static final int MAX_FIELD_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 255
private io.netty.handler.codec.socksx.v4.Socks4CommandType type;
descriptor: Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
flags: (0x0002) ACC_PRIVATE
private java.lang.String dstAddr;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int dstPort;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String userId;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$socksx$v4$Socks4ServerDecoder$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.START:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokespecial io.netty.handler.codec.ReplayingDecoder.<init>:(Ljava/lang/Object;)V
1: aload 0
iconst_1
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.setSingleDecode:(Z)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder;
protected 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: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.$SWITCH_TABLE$io$netty$handler$codec$socksx$v4$Socks4ServerDecoder$State:()[I
aload 0
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.state:()Ljava/lang/Object;
checkcast io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 1
2: 8
3: 10
4: 14
5: 18
default: 19
}
1: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedByte:()S
istore 4
start local 4 2: iload 4
getstatic io.netty.handler.codec.socksx.SocksVersion.SOCKS4a:Lio/netty/handler/codec/socksx/SocksVersion;
invokevirtual io.netty.handler.codec.socksx.SocksVersion.byteValue:()B
if_icmpeq 4
3: new io.netty.handler.codec.DecoderException
dup
new java.lang.StringBuilder
dup
ldc "unsupported protocol version: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial io.netty.handler.codec.DecoderException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int
StackMap stack:
aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readByte:()B
invokestatic io.netty.handler.codec.socksx.v4.Socks4CommandType.valueOf:(B)Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
putfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.type:Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
5: aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
putfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstPort:I
6: aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readInt:()I
invokestatic io.netty.util.NetUtil.intToIpAddress:(I)Ljava/lang/String;
putfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstAddr:Ljava/lang/String;
7: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.READ_USERID:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.checkpoint:(Ljava/lang/Object;)V
end local 4 8: StackMap locals:
StackMap stack:
aload 0
ldc "userid"
aload 2
invokestatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.readString:(Ljava/lang/String;Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
putfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.userId:Ljava/lang/String;
9: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.READ_DOMAIN:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.checkpoint:(Ljava/lang/Object;)V
10: StackMap locals:
StackMap stack:
ldc "0.0.0.0"
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstAddr:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstAddr:Ljava/lang/String;
ldc "0.0.0."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
11: aload 0
ldc "dstAddr"
aload 2
invokestatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.readString:(Ljava/lang/String;Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
putfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstAddr:Ljava/lang/String;
12: StackMap locals:
StackMap stack:
aload 3
new io.netty.handler.codec.socksx.v4.DefaultSocks4CommandRequest
dup
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.type:Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstAddr:Ljava/lang/String;
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstPort:I
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.userId:Ljava/lang/String;
invokespecial io.netty.handler.codec.socksx.v4.DefaultSocks4CommandRequest.<init>:(Lio/netty/handler/codec/socksx/v4/Socks4CommandType;Ljava/lang/String;ILjava/lang/String;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.SUCCESS:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.checkpoint:(Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.actualReadableBytes:()I
istore 4
start local 4 15: iload 4
ifle 22
16: aload 3
aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
17: goto 22
end local 4 18: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.actualReadableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
19: StackMap locals:
StackMap stack:
goto 22
StackMap locals:
StackMap stack: java.lang.Exception
20: astore 4
start local 4 21: aload 0
aload 3
aload 4
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.fail:(Ljava/util/List;Ljava/lang/Exception;)V
end local 4 22: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder;
0 23 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 23 2 in Lio/netty/buffer/ByteBuf;
0 23 3 out Ljava/util/List<Ljava/lang/Object;>;
2 8 4 version I
15 18 4 readableBytes I
21 22 4 e Ljava/lang/Exception;
Exception table:
from to target type
0 19 20 Class java.lang.Exception
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 void fail(java.util.List<java.lang.Object>, java.lang.Exception);
descriptor: (Ljava/util/List;Ljava/lang/Exception;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.DecoderException
ifne 2
1: new io.netty.handler.codec.DecoderException
dup
aload 2
invokespecial io.netty.handler.codec.DecoderException.<init>:(Ljava/lang/Throwable;)V
astore 2
2: StackMap locals:
StackMap stack:
new io.netty.handler.codec.socksx.v4.DefaultSocks4CommandRequest
dup
3: aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.type:Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
ifnull 4
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.type:Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
goto 5
StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2
4: getstatic io.netty.handler.codec.socksx.v4.Socks4CommandType.CONNECT:Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
5: StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2 io.netty.handler.codec.socksx.v4.Socks4CommandType
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstAddr:Ljava/lang/String;
ifnull 6
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstAddr:Ljava/lang/String;
goto 7
StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2 io.netty.handler.codec.socksx.v4.Socks4CommandType
6: ldc ""
7: StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2 io.netty.handler.codec.socksx.v4.Socks4CommandType java.lang.String
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstPort:I
ifeq 8
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.dstPort:I
goto 9
StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2 io.netty.handler.codec.socksx.v4.Socks4CommandType java.lang.String
8: ldc 65535
9: StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2 io.netty.handler.codec.socksx.v4.Socks4CommandType java.lang.String int
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.userId:Ljava/lang/String;
ifnull 10
aload 0
getfield io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.userId:Ljava/lang/String;
goto 11
StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2 io.netty.handler.codec.socksx.v4.Socks4CommandType java.lang.String int
10: ldc ""
11: StackMap locals: io.netty.handler.codec.socksx.v4.Socks4ServerDecoder java.util.List java.lang.Exception
StackMap stack: new 2 new 2 io.netty.handler.codec.socksx.v4.Socks4CommandType java.lang.String int java.lang.String
invokespecial io.netty.handler.codec.socksx.v4.DefaultSocks4CommandRequest.<init>:(Lio/netty/handler/codec/socksx/v4/Socks4CommandType;Ljava/lang/String;ILjava/lang/String;)V
astore 3
start local 3 12: aload 3
aload 2
invokestatic io.netty.handler.codec.DecoderResult.failure:(Ljava/lang/Throwable;)Lio/netty/handler/codec/DecoderResult;
invokeinterface io.netty.handler.codec.socksx.v4.Socks4CommandRequest.setDecoderResult:(Lio/netty/handler/codec/DecoderResult;)V
13: aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.FAILURE:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.checkpoint:(Ljava/lang/Object;)V
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder;
0 16 1 out Ljava/util/List<Ljava/lang/Object;>;
0 16 2 cause Ljava/lang/Exception;
12 16 3 m Lio/netty/handler/codec/socksx/v4/Socks4CommandRequest;
Signature: (Ljava/util/List<Ljava/lang/Object;>;Ljava/lang/Exception;)V
MethodParameters:
Name Flags
out
cause
private static java.lang.String readString(java.lang.String, io.netty.buffer.ByteBuf);
descriptor: (Ljava/lang/String;Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
sipush 256
iconst_0
invokevirtual io.netty.buffer.ByteBuf.bytesBefore:(IB)I
istore 2
start local 2 1: iload 2
ifge 3
2: new io.netty.handler.codec.DecoderException
dup
new java.lang.StringBuilder
dup
ldc "field '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' longer than "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
sipush 255
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " chars"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial io.netty.handler.codec.DecoderException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.readSlice:(I)Lio/netty/buffer/ByteBuf;
getstatic io.netty.util.CharsetUtil.US_ASCII:Ljava/nio/charset/Charset;
invokevirtual io.netty.buffer.ByteBuf.toString:(Ljava/nio/charset/Charset;)Ljava/lang/String;
astore 3
start local 3 4: aload 1
iconst_1
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
5: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 fieldName Ljava/lang/String;
0 6 1 in Lio/netty/buffer/ByteBuf;
1 6 2 length I
4 6 3 value Ljava/lang/String;
MethodParameters:
Name Flags
fieldName
in
static int[] $SWITCH_TABLE$io$netty$handler$codec$socksx$v4$Socks4ServerDecoder$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.$SWITCH_TABLE$io$netty$handler$codec$socksx$v4$Socks4ServerDecoder$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.values:()[Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.FAILURE:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.ordinal:()I
iconst_5
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.READ_DOMAIN:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.READ_USERID:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.START:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.ordinal:()I
iconst_1
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.SUCCESS:Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;
invokevirtual io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State.ordinal:()I
iconst_4
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic io.netty.handler.codec.socksx.v4.Socks4ServerDecoder.$SWITCH_TABLE$io$netty$handler$codec$socksx$v4$Socks4ServerDecoder$State:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
}
Signature: Lio/netty/handler/codec/ReplayingDecoder<Lio/netty/handler/codec/socksx/v4/Socks4ServerDecoder$State;>;
SourceFile: "Socks4ServerDecoder.java"
NestMembers:
io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State
InnerClasses:
final State = io.netty.handler.codec.socksx.v4.Socks4ServerDecoder$State of io.netty.handler.codec.socksx.v4.Socks4ServerDecoder