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.protocol.http;
21
22 import io.netty.channel.ChannelInitializer;
23 import io.netty.channel.ChannelPipeline;
24 import io.netty.channel.socket.SocketChannel;
25 import io.netty.handler.codec.http.HttpContentCompressor;
26 import io.netty.handler.codec.http.HttpObjectAggregator;
27 import io.netty.handler.codec.http.HttpServerCodec;
28 import io.netty.handler.stream.ChunkedWriteHandler;
29 import org.waarp.openr66.proxy.configuration.ConfigurationProxyR66;
30
31
32
33
34 public class HttpInitializer extends ChannelInitializer<SocketChannel> {
35 public final boolean useHttpCompression;
36
37 public HttpInitializer(final boolean useHttpCompression) {
38 this.useHttpCompression = useHttpCompression;
39 }
40
41 @Override
42 protected void initChannel(final SocketChannel ch) {
43 final ChannelPipeline pipeline = ch.pipeline();
44 pipeline.addLast("decoder", new HttpServerCodec());
45 pipeline.addLast("aggregator", new HttpObjectAggregator(
46 ConfigurationProxyR66.configuration.getMaxGlobalMemory()));
47 pipeline.addLast("streamer", new ChunkedWriteHandler());
48 if (useHttpCompression) {
49 pipeline.addLast("deflater", new HttpContentCompressor());
50 }
51 pipeline.addLast("handler", new HttpFormattedHandlerProxyR66());
52 }
53 }