public final class io.netty.example.socksproxy.SocksServerConnectHandler 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.SocksServerConnectHandler
super_class: io.netty.channel.SimpleChannelInboundHandler
{
private final io.netty.bootstrap.Bootstrap b;
descriptor: Lio/netty/bootstrap/Bootstrap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial io.netty.channel.SimpleChannelInboundHandler.<init>:()V
1: aload 0
new io.netty.bootstrap.Bootstrap
dup
invokespecial io.netty.bootstrap.Bootstrap.<init>:()V
putfield io.netty.example.socksproxy.SocksServerConnectHandler.b:Lio/netty/bootstrap/Bootstrap;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/socksproxy/SocksServerConnectHandler;
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=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.socksx.v4.Socks4CommandRequest
ifeq 14
1: aload 2
checkcast io.netty.handler.codec.socksx.v4.Socks4CommandRequest
astore 3
start local 3 2: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
invokeinterface io.netty.util.concurrent.EventExecutor.newPromise:()Lio/netty/util/concurrent/Promise;
astore 4
start local 4 3: aload 4
4: new io.netty.example.socksproxy.SocksServerConnectHandler$1
dup
aload 0
aload 1
invokespecial io.netty.example.socksproxy.SocksServerConnectHandler$1.<init>:(Lio/netty/example/socksproxy/SocksServerConnectHandler;Lio/netty/channel/ChannelHandlerContext;)V
5: invokeinterface io.netty.util.concurrent.Promise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Promise;
pop
6: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
astore 5
start local 5 7: aload 0
getfield io.netty.example.socksproxy.SocksServerConnectHandler.b:Lio/netty/bootstrap/Bootstrap;
aload 5
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
invokevirtual io.netty.bootstrap.Bootstrap.group:(Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
8: ldc Lio/netty/channel/socket/nio/NioSocketChannel;
invokevirtual io.netty.bootstrap.Bootstrap.channel:(Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
9: getstatic io.netty.channel.ChannelOption.CONNECT_TIMEOUT_MILLIS:Lio/netty/channel/ChannelOption;
sipush 10000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual io.netty.bootstrap.Bootstrap.option:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
10: getstatic io.netty.channel.ChannelOption.SO_KEEPALIVE:Lio/netty/channel/ChannelOption;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual io.netty.bootstrap.Bootstrap.option:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
11: new io.netty.example.socksproxy.DirectClientHandler
dup
aload 4
invokespecial io.netty.example.socksproxy.DirectClientHandler.<init>:(Lio/netty/util/concurrent/Promise;)V
invokevirtual io.netty.bootstrap.Bootstrap.handler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/AbstractBootstrap;
pop
12: aload 0
getfield io.netty.example.socksproxy.SocksServerConnectHandler.b:Lio/netty/bootstrap/Bootstrap;
aload 3
invokeinterface io.netty.handler.codec.socksx.v4.Socks4CommandRequest.dstAddr:()Ljava/lang/String;
aload 3
invokeinterface io.netty.handler.codec.socksx.v4.Socks4CommandRequest.dstPort:()I
invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/lang/String;I)Lio/netty/channel/ChannelFuture;
new io.netty.example.socksproxy.SocksServerConnectHandler$2
dup
aload 0
aload 1
invokespecial io.netty.example.socksproxy.SocksServerConnectHandler$2.<init>:(Lio/netty/example/socksproxy/SocksServerConnectHandler;Lio/netty/channel/ChannelHandlerContext;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
end local 5 end local 4 end local 3 13: goto 29
StackMap locals:
StackMap stack:
14: aload 2
instanceof io.netty.handler.codec.socksx.v5.Socks5CommandRequest
ifeq 28
15: aload 2
checkcast io.netty.handler.codec.socksx.v5.Socks5CommandRequest
astore 3
start local 3 16: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
invokeinterface io.netty.util.concurrent.EventExecutor.newPromise:()Lio/netty/util/concurrent/Promise;
astore 4
start local 4 17: aload 4
18: new io.netty.example.socksproxy.SocksServerConnectHandler$3
dup
aload 0
aload 1
aload 3
invokespecial io.netty.example.socksproxy.SocksServerConnectHandler$3.<init>:(Lio/netty/example/socksproxy/SocksServerConnectHandler;Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/socksx/v5/Socks5CommandRequest;)V
19: invokeinterface io.netty.util.concurrent.Promise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/util/concurrent/Promise;
pop
20: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
astore 5
start local 5 21: aload 0
getfield io.netty.example.socksproxy.SocksServerConnectHandler.b:Lio/netty/bootstrap/Bootstrap;
aload 5
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
invokevirtual io.netty.bootstrap.Bootstrap.group:(Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
22: ldc Lio/netty/channel/socket/nio/NioSocketChannel;
invokevirtual io.netty.bootstrap.Bootstrap.channel:(Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
23: getstatic io.netty.channel.ChannelOption.CONNECT_TIMEOUT_MILLIS:Lio/netty/channel/ChannelOption;
sipush 10000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual io.netty.bootstrap.Bootstrap.option:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
24: getstatic io.netty.channel.ChannelOption.SO_KEEPALIVE:Lio/netty/channel/ChannelOption;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual io.netty.bootstrap.Bootstrap.option:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
25: new io.netty.example.socksproxy.DirectClientHandler
dup
aload 4
invokespecial io.netty.example.socksproxy.DirectClientHandler.<init>:(Lio/netty/util/concurrent/Promise;)V
invokevirtual io.netty.bootstrap.Bootstrap.handler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/AbstractBootstrap;
pop
26: aload 0
getfield io.netty.example.socksproxy.SocksServerConnectHandler.b:Lio/netty/bootstrap/Bootstrap;
aload 3
invokeinterface io.netty.handler.codec.socksx.v5.Socks5CommandRequest.dstAddr:()Ljava/lang/String;
aload 3
invokeinterface io.netty.handler.codec.socksx.v5.Socks5CommandRequest.dstPort:()I
invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/lang/String;I)Lio/netty/channel/ChannelFuture;
new io.netty.example.socksproxy.SocksServerConnectHandler$4
dup
aload 0
aload 1
aload 3
invokespecial io.netty.example.socksproxy.SocksServerConnectHandler$4.<init>:(Lio/netty/example/socksproxy/SocksServerConnectHandler;Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/socksx/v5/Socks5CommandRequest;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
end local 5 end local 4 end local 3 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/SocksServerConnectHandler;
0 30 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 30 2 message Lio/netty/handler/codec/socksx/SocksMessage;
2 13 3 request Lio/netty/handler/codec/socksx/v4/Socks4CommandRequest;
3 13 4 promise Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
7 13 5 inboundChannel Lio/netty/channel/Channel;
16 27 3 request Lio/netty/handler/codec/socksx/v5/Socks5CommandRequest;
17 27 4 promise Lio/netty/util/concurrent/Promise<Lio/netty/channel/Channel;>;
21 27 5 inboundChannel Lio/netty/channel/Channel;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx final
message final
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 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokestatic io.netty.example.socksproxy.SocksServerUtils.closeOnFlush:(Lio/netty/channel/Channel;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/example/socksproxy/SocksServerConnectHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 2 2 cause Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
cause
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.SocksServerConnectHandler.channelRead0:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/socksx/SocksMessage;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Lio/netty/handler/codec/socksx/SocksMessage;>;
SourceFile: "SocksServerConnectHandler.java"
NestMembers:
io.netty.example.socksproxy.SocksServerConnectHandler$1 io.netty.example.socksproxy.SocksServerConnectHandler$1$1 io.netty.example.socksproxy.SocksServerConnectHandler$2 io.netty.example.socksproxy.SocksServerConnectHandler$3 io.netty.example.socksproxy.SocksServerConnectHandler$3$1 io.netty.example.socksproxy.SocksServerConnectHandler$4
InnerClasses:
public abstract Sharable = io.netty.channel.ChannelHandler$Sharable of io.netty.channel.ChannelHandler
io.netty.example.socksproxy.SocksServerConnectHandler$1
io.netty.example.socksproxy.SocksServerConnectHandler$2
io.netty.example.socksproxy.SocksServerConnectHandler$3
io.netty.example.socksproxy.SocksServerConnectHandler$4
RuntimeVisibleAnnotations:
io.netty.channel.ChannelHandler$Sharable()