Skip to content

Commit

Permalink
add socks5 proxy support (apache#3624)
Browse files Browse the repository at this point in the history
  • Loading branch information
nihongye authored and vio-lin committed Apr 29, 2019
1 parent 9ee79b9 commit 9d5110d
Showing 1 changed file with 16 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.apache.dubbo.common.Version;
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.utils.ConfigUtils;
import org.apache.dubbo.common.utils.NetUtils;
import org.apache.dubbo.common.utils.UrlUtils;
import org.apache.dubbo.remoting.ChannelHandler;
Expand All @@ -35,11 +36,14 @@
import io.netty.channel.ChannelOption;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.handler.proxy.Socks5ProxyHandler;
import io.netty.handler.timeout.IdleStateHandler;
import io.netty.util.concurrent.DefaultThreadFactory;

import static java.util.concurrent.TimeUnit.MILLISECONDS;

import java.net.InetSocketAddress;

/**
* NettyClient.
*/
Expand All @@ -48,6 +52,12 @@ public class NettyClient extends AbstractClient {
private static final Logger logger = LoggerFactory.getLogger(NettyClient.class);

private static final NioEventLoopGroup nioEventLoopGroup = new NioEventLoopGroup(Constants.DEFAULT_IO_THREADS, new DefaultThreadFactory("NettyClientWorker", true));

private static final String SOCKS_PROXY_HOST = "socksProxyHost";

private static final String SOCKS_PROXY_PORT = "socksProxyPort";

private static final String DEFAULT_SOCKS_PROXY_PORT = "1080";

private Bootstrap bootstrap;

Expand Down Expand Up @@ -85,6 +95,12 @@ protected void initChannel(Channel ch) throws Exception {
.addLast("encoder", adapter.getEncoder())
.addLast("client-idle-handler", new IdleStateHandler(heartbeatInterval, 0, 0, MILLISECONDS))
.addLast("handler", nettyClientHandler);
String socksProxyHost = ConfigUtils.getProperty(SOCKS_PROXY_HOST);
if(socksProxyHost != null) {
int socksProxyPort = Integer.parseInt(ConfigUtils.getProperty(SOCKS_PROXY_PORT, DEFAULT_SOCKS_PROXY_PORT));
Socks5ProxyHandler socks5ProxyHandler = new Socks5ProxyHandler(new InetSocketAddress(socksProxyHost, socksProxyPort));
ch.pipeline().addFirst(socks5ProxyHandler);
}
}
});
}
Expand Down

0 comments on commit 9d5110d

Please sign in to comment.