1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.openr66.proxy.network;
21
22 import io.netty.channel.ChannelPipeline;
23 import io.netty.channel.socket.SocketChannel;
24 import io.netty.handler.timeout.IdleStateHandler;
25 import io.netty.handler.traffic.ChannelTrafficShapingHandler;
26 import io.netty.handler.traffic.GlobalTrafficShapingHandler;
27 import org.waarp.openr66.protocol.networkhandler.NetworkServerInitializer;
28
29 import java.util.concurrent.TimeUnit;
30
31 import static org.waarp.openr66.protocol.configuration.Configuration.*;
32
33
34
35
36 public class NetworkServerInitializerProxy extends NetworkServerInitializer {
37
38 public NetworkServerInitializerProxy(final boolean server) {
39 super(server);
40 }
41
42 @Override
43 protected void initChannel(final SocketChannel ch) {
44 final ChannelPipeline pipeline = ch.pipeline();
45 pipeline.addLast(TIMEOUT, new IdleStateHandler(true, 0, 0,
46 configuration.getTimeoutCon(),
47 TimeUnit.MILLISECONDS));
48 final GlobalTrafficShapingHandler handler =
49 configuration.getGlobalTrafficShapingHandler();
50 if (handler != null) {
51 pipeline.addLast(LIMITGLOBAL, handler);
52 }
53 pipeline.addLast(LIMITCHANNEL, new ChannelTrafficShapingHandler(
54 configuration.getServerChannelWriteLimit(),
55 configuration.getServerChannelReadLimit(),
56 configuration.getDelayLimit(), configuration.getTimeoutCon()));
57 pipeline.addLast(NETWORK_CODEC, new NetworkPacketCodec());
58 pipeline.addLast(configuration.getHandlerGroup(), NETWORK_HANDLER,
59 new NetworkServerHandler(server));
60 }
61
62 }