public final class io.netty.example.socksproxy.SocksServerHandler extends io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.socksx.SocksMessage>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.example.socksproxy.SocksServerHandler
super_class: io.netty.channel.SimpleChannelInboundHandler
{
public static final io.netty.example.socksproxy.SocksServerHandler INSTANCE;
descriptor: Lio/netty/example/socksproxy/SocksServerHandler;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$socksx$SocksVersion;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new io.netty.example.socksproxy.SocksServerHandler
dup
invokespecial io.netty.example.socksproxy.SocksServerHandler.<init>:()V
putstatic io.netty.example.socksproxy.SocksServerHandler.INSTANCE:Lio/netty/example/socksproxy/SocksServerHandler;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.netty.channel.SimpleChannelInboundHandler.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/example/socksproxy/SocksServerHandler;
public void channelRead0(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.socksx.SocksMessage);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/socksx/SocksMessage;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic io.netty.example.socksproxy.SocksServerHandler.$SWITCH_TABLE$io$netty$handler$codec$socksx$SocksVersion:()[I
aload 2
invokeinterface io.netty.handler.codec.socksx.SocksMessage.version:()Lio/netty/handler/codec/socksx/SocksVersion;
invokevirtual io.netty.handler.codec.socksx.SocksVersion.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 1
2: 9
3: 28
default: 29
}
1: StackMap locals:
StackMap stack:
aload 2
checkcast io.netty.handler.codec.socksx.v4.Socks4CommandRequest
astore 3
start local 3 2: aload 3
invokeinterface io.netty.handler.codec.socksx.v4.Socks4CommandRequest.type:()Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
getstatic io.netty.handler.codec.socksx.v4.Socks4CommandType.CONNECT:Lio/netty/handler/codec/socksx/v4/Socks4CommandType;
if_acmpne 7
3: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
iconst_1
anewarray io.netty.channel.ChannelHandler
dup
iconst_0
new io.netty.example.socksproxy.SocksServerConnectHandler
dup
invokespecial io.netty.example.socksproxy.SocksServerConnectHandler.<init>:()V
aastore
invokeinterface io.netty.channel.ChannelPipeline.addLast:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
4: 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
5: aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
pop
6: goto 29
7: StackMap locals: io.netty.handler.codec.socksx.v4.Socks4CommandRequest
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
8: goto 29
end local 3 9: StackMap locals:
StackMap stack:
aload 2
instanceof io.netty.handler.codec.socksx.v5.Socks5InitialRequest
ifeq 13
10: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
iconst_1
anewarray io.netty.channel.ChannelHandler
dup
iconst_0
new io.netty.handler.codec.socksx.v5.Socks5CommandRequestDecoder
dup
invokespecial io.netty.handler.codec.socksx.v5.Socks5CommandRequestDecoder.<init>:()V
aastore
invokeinterface io.netty.channel.ChannelPipeline.addFirst:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
11: aload 1
new io.netty.handler.codec.socksx.v5.DefaultSocks5InitialResponse
dup
getstatic io.netty.handler.codec.socksx.v5.Socks5AuthMethod.NO_AUTH:Lio/netty/handler/codec/socksx/v5/Socks5AuthMethod;
invokespecial io.netty.handler.codec.socksx.v5.DefaultSocks5InitialResponse.<init>:(Lio/netty/handler/codec/socksx/v5/Socks5AuthMethod;)V
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
12: goto 29
StackMap locals:
StackMap stack:
13: aload 2
instanceof io.netty.handler.codec.socksx.v5.Socks5PasswordAuthRequest
ifeq 17
14: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
iconst_1
anewarray io.netty.channel.ChannelHandler
dup
iconst_0
new io.netty.handler.codec.socksx.v5.Socks5CommandRequestDecoder
dup
invokespecial io.netty.handler.codec.socksx.v5.Socks5CommandRequestDecoder.<init>:()V
aastore
invokeinterface io.netty.channel.ChannelPipeline.addFirst:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
15: aload 1
new io.netty.handler.codec.socksx.v5.DefaultSocks5PasswordAuthResponse
dup
getstatic io.netty.handler.codec.socksx.v5.Socks5PasswordAuthStatus.SUCCESS:Lio/netty/handler/codec/socksx/v5/Socks5PasswordAuthStatus;
invokespecial io.netty.handler.codec.socksx.v5.DefaultSocks5PasswordAuthResponse.<init>:(Lio/netty/handler/codec/socksx/v5/Socks5PasswordAuthStatus;)V
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
16: goto 29
StackMap locals:
StackMap stack:
17: aload 2
instanceof io.netty.handler.codec.socksx.v5.Socks5CommandRequest
ifeq 26
18: aload 2
checkcast io.netty.handler.codec.socksx.v5.Socks5CommandRequest
astore 4
start local 4 19: aload 4
invokeinterface io.netty.handler.codec.socksx.v5.Socks5CommandRequest.type:()Lio/netty/handler/codec/socksx/v5/Socks5CommandType;
getstatic io.netty.handler.codec.socksx.v5.Socks5CommandType.CONNECT:Lio/netty/handler/codec/socksx/v5/Socks5CommandType;
if_acmpne 24
20: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
iconst_1
anewarray io.netty.channel.ChannelHandler
dup
iconst_0
new io.netty.example.socksproxy.SocksServerConnectHandler
dup
invokespecial io.netty.example.socksproxy.SocksServerConnectHandler.<init>:()V
aastore
invokeinterface io.netty.channel.ChannelPipeline.addLast:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
21: 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
22: aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
pop
23: goto 29
24: StackMap locals: io.netty.example.socksproxy.SocksServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.socksx.SocksMessage top io.netty.handler.codec.socksx.v5.Socks5CommandRequest
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
end local 4 25: goto 29
26: StackMap locals: io.netty.example.socksproxy.SocksServerHandler io.netty.channel.ChannelHandlerContext io.netty.handler.codec.socksx.SocksMessage
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
27: goto 29
28: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
29: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lio/netty/example/socksproxy/SocksServerHandler;
0 30 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 30 2 socksRequest Lio/netty/handler/codec/socksx/SocksMessage;
2 9 3 socksV4CmdRequest Lio/netty/handler/codec/socksx/v4/Socks4CommandRequest;
19 25 4 socks5CmdRequest Lio/netty/handler/codec/socksx/v5/Socks5CommandRequest;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
socksRequest
public void channelReadComplete(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.flush:()Lio/netty/channel/ChannelHandlerContext;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/example/socksproxy/SocksServerHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
MethodParameters:
Name Flags
ctx
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.Throwable.printStackTrace:()V
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokestatic io.netty.example.socksproxy.SocksServerUtils.closeOnFlush:(Lio/netty/channel/Channel;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/socksproxy/SocksServerHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 throwable Ljava/lang/Throwable;
MethodParameters:
Name Flags
ctx
throwable
public void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast io.netty.handler.codec.socksx.SocksMessage
invokevirtual io.netty.example.socksproxy.SocksServerHandler.channelRead0:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/socksx/SocksMessage;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
static int[] $SWITCH_TABLE$io$netty$handler$codec$socksx$SocksVersion();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.netty.example.socksproxy.SocksServerHandler.$SWITCH_TABLE$io$netty$handler$codec$socksx$SocksVersion:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic io.netty.handler.codec.socksx.SocksVersion.values:()[Lio/netty/handler/codec/socksx/SocksVersion;
arraylength
newarray 10
astore 0
2: aload 0
getstatic io.netty.handler.codec.socksx.SocksVersion.SOCKS4a:Lio/netty/handler/codec/socksx/SocksVersion;
invokevirtual io.netty.handler.codec.socksx.SocksVersion.ordinal:()I
iconst_1
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.SocksVersion.SOCKS5:Lio/netty/handler/codec/socksx/SocksVersion;
invokevirtual io.netty.handler.codec.socksx.SocksVersion.ordinal:()I
iconst_2
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.SocksVersion.UNKNOWN:Lio/netty/handler/codec/socksx/SocksVersion;
invokevirtual io.netty.handler.codec.socksx.SocksVersion.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic io.netty.example.socksproxy.SocksServerHandler.$SWITCH_TABLE$io$netty$handler$codec$socksx$SocksVersion:[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
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Lio/netty/handler/codec/socksx/SocksMessage;>;
SourceFile: "SocksServerHandler.java"
InnerClasses:
public abstract Sharable = io.netty.channel.ChannelHandler$Sharable of io.netty.channel.ChannelHandler
RuntimeVisibleAnnotations:
io.netty.channel.ChannelHandler$Sharable()