summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/btr/proxy/search/env/EnvProxySearchStrategy.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/btr/proxy/search/env/EnvProxySearchStrategy.java')
-rw-r--r--src/main/java/com/btr/proxy/search/env/EnvProxySearchStrategy.java31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/main/java/com/btr/proxy/search/env/EnvProxySearchStrategy.java b/src/main/java/com/btr/proxy/search/env/EnvProxySearchStrategy.java
index 37bd0a1..f7b6483 100644
--- a/src/main/java/com/btr/proxy/search/env/EnvProxySearchStrategy.java
+++ b/src/main/java/com/btr/proxy/search/env/EnvProxySearchStrategy.java
@@ -4,11 +4,12 @@ import java.net.ProxySelector;
import java.util.Properties;
import com.btr.proxy.search.ProxySearchStrategy;
+import com.btr.proxy.selector.fixed.FixedProxySelector;
import com.btr.proxy.selector.misc.ProtocolDispatchSelector;
import com.btr.proxy.selector.whitelist.ProxyBypassListSelector;
import com.btr.proxy.util.Logger;
-import com.btr.proxy.util.ProxyUtil;
import com.btr.proxy.util.Logger.LogLevel;
+import com.btr.proxy.util.ProxyUtil;
/*****************************************************************************
* Reads some environment variables and extracts the proxy settings from them.
@@ -96,26 +97,30 @@ public class EnvProxySearchStrategy implements ProxySearchStrategy {
public ProxySelector getProxySelector() {
Logger.log(getClass(), LogLevel.TRACE, "Inspecting environment variables.");
+ ProtocolDispatchSelector ps = new ProtocolDispatchSelector();
- // Check if http_proxy var is set.
- ProxySelector httpPS = ProxyUtil.parseProxySettings(this.httpProxy);
- if (httpPS == null) {
- return null;
+ FixedProxySelector httpPS = ProxyUtil.parseProxySettings(this.httpProxy);
+ if (httpPS != null) {
+ Logger.log(getClass(), LogLevel.TRACE, "Http Proxy is {0}", this.httpProxy);
+ ps.setSelector("http", httpPS);
}
-
- Logger.log(getClass(), LogLevel.TRACE, "Http Proxy is {0}", this.httpProxy);
- ProtocolDispatchSelector ps = new ProtocolDispatchSelector();
- ps.setSelector("http", httpPS);
- ProxySelector httpsPS = ProxyUtil.parseProxySettings(this.httpsProxy);
- Logger.log(getClass(), LogLevel.TRACE, "Https Proxy is {0}", httpsPS == null? this.httpsProxy: httpsPS);
- ps.setSelector("https", httpsPS != null? httpsPS: httpPS);
+ FixedProxySelector httpsPS = ProxyUtil.parseProxySettings(this.httpsProxy);
+ if (httpsPS != null) {
+ Logger.log(getClass(), LogLevel.TRACE, "Https Proxy is {0}", this.httpsProxy);
+ ps.setSelector("https", httpsPS);
+ }
- ProxySelector ftpPS = ProxyUtil.parseProxySettings(this.ftpProxy);
+ FixedProxySelector ftpPS = ProxyUtil.parseProxySettings(this.ftpProxy);
if (ftpPS != null) {
Logger.log(getClass(), LogLevel.TRACE, "Ftp Proxy is {0}", this.ftpProxy);
ps.setSelector("ftp", ftpPS);
}
+
+ ps.setFallbackSocksSelector(httpPS, httpsPS, ftpPS);
+
+ if (ps.isEmpty())
+ return null;
// Wrap with white list support
ProxySelector result = ps;