|
4 | 4 | import com.github.monkeywie.proxyee.server.accept.HttpProxyMitmMatcher; |
5 | 5 | import com.github.monkeywie.proxyee.server.auth.HttpProxyAuthenticationProvider; |
6 | 6 | import com.github.monkeywie.proxyee.config.IdleStateCheck; |
| 7 | + |
| 8 | +import io.netty.channel.ChannelFactory; |
7 | 9 | import io.netty.channel.EventLoopGroup; |
| 10 | +import io.netty.channel.socket.SocketChannel; |
| 11 | +import io.netty.channel.socket.nio.NioSocketChannel; |
8 | 12 | import io.netty.handler.codec.http.HttpObjectDecoder; |
9 | 13 | import io.netty.handler.ssl.SslContext; |
10 | 14 | import io.netty.resolver.AddressResolverGroup; |
@@ -37,6 +41,8 @@ public class HttpProxyServerConfig { |
37 | 41 | private int maxHeaderSize = HttpObjectDecoder.DEFAULT_MAX_HEADER_SIZE; |
38 | 42 | private int maxChunkSize = HttpObjectDecoder.DEFAULT_MAX_CHUNK_SIZE; |
39 | 43 | private IdleStateCheck idleStateCheck; |
| 44 | + private ChannelFactory<SocketChannel> channelFactory; |
| 45 | + private boolean forceResolveDNS = false; |
40 | 46 |
|
41 | 47 | public HttpProxyServerConfig() { |
42 | 48 | this(DefaultAddressResolverGroup.INSTANCE); |
@@ -67,6 +73,30 @@ private HttpProxyServerConfig(Builder builder) { |
67 | 73 | this.idleStateCheck = builder.idleStateCheck; |
68 | 74 | } |
69 | 75 |
|
| 76 | + public void setForceResolveDNS(boolean forceResolveDNS) { |
| 77 | + this.forceResolveDNS = forceResolveDNS; |
| 78 | + } |
| 79 | + |
| 80 | + public boolean getForceResolveDNS() { |
| 81 | + return forceResolveDNS; |
| 82 | + } |
| 83 | + |
| 84 | + public ChannelFactory<SocketChannel> getChannelFactory() { |
| 85 | + if (channelFactory == null) { |
| 86 | + return (new ChannelFactory<SocketChannel>() { |
| 87 | + @Override |
| 88 | + public SocketChannel newChannel() { |
| 89 | + return new NioSocketChannel(); // 使用NioSocketChannel来作为连接用的channel类 |
| 90 | + } |
| 91 | + }); |
| 92 | + } |
| 93 | + return channelFactory; |
| 94 | + } |
| 95 | + |
| 96 | + public void setChannelFactory(ChannelFactory<SocketChannel> channelFactory) { |
| 97 | + this.channelFactory = channelFactory; |
| 98 | + } |
| 99 | + |
70 | 100 | public SslContext getClientSslCtx() { |
71 | 101 | return clientSslCtx; |
72 | 102 | } |
|
0 commit comments