1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.example.socksproxy;
17
18 import io.netty.channel.Channel;
19 import io.netty.channel.ChannelHandlerContext;
20 import io.netty.channel.ChannelInboundHandlerAdapter;
21 import io.netty.util.concurrent.Promise;
22
23 public final class DirectClientHandler extends ChannelInboundHandlerAdapter {
24
25 private final Promise<Channel> promise;
26
27 public DirectClientHandler(Promise<Channel> promise) {
28 this.promise = promise;
29 }
30
31 @Override
32 public void channelActive(ChannelHandlerContext ctx) {
33 ctx.pipeline().remove(this);
34 promise.setSuccess(ctx.channel());
35 }
36
37 @Override
38 public void exceptionCaught(ChannelHandlerContext ctx, Throwable throwable) {
39 promise.setFailure(throwable);
40 }
41 }