You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2019/04/26 03:01:04 UTC
[incubator-dubbo] branch master updated: add socks5 proxy support
(#3624)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 083605a add socks5 proxy support (#3624)
083605a is described below
commit 083605ad06dbccc7d833ff7dc84a62b736df44b5
Author: hongye <em...@gmail.com>
AuthorDate: Fri Apr 26 11:00:55 2019 +0800
add socks5 proxy support (#3624)
---
.../dubbo/remoting/transport/netty4/NettyClient.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java
index 7ba4a63..322d658 100644
--- a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java
+++ b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.common.URL;
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;
@@ -35,11 +36,14 @@ import io.netty.channel.ChannelInitializer;
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.
*/
@@ -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;
@@ -85,6 +95,12 @@ public class NettyClient extends AbstractClient {
.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);
+ }
}
});
}