diff options
author | Simon Rettberg | 2017-08-09 16:36:25 +0200 |
---|---|---|
committer | Simon Rettberg | 2017-08-09 16:36:25 +0200 |
commit | 90349ff2bf27a81ef7412f15b22769ff6ca6bd6e (patch) | |
tree | f518e1d90917377039017078359f6d2574d224cb /src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java | |
parent | Rewrite proxy string parsing, regex was a bit wonky (diff) | |
download | proxy-vole-90349ff2bf27a81ef7412f15b22769ff6ca6bd6e.tar.gz proxy-vole-90349ff2bf27a81ef7412f15b22769ff6ca6bd6e.tar.xz proxy-vole-90349ff2bf27a81ef7412f15b22769ff6ca6bd6e.zip |
Sophisticate proxy parsing and generating, fix misinterpretation if SOCKS proxies
This is a quick and dirty fix; it seems a major redesign is appropriate.
We should also switch to some maintained version of proxy-vole from github.
This one looks halfway active:
https://github.com/MarkusBernhardt/proxy-vole
or maybe one of its forks...
Diffstat (limited to 'src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java')
-rw-r--r-- | src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java b/src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java index 6641aff..dd062cd 100644 --- a/src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java +++ b/src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java @@ -165,7 +165,15 @@ public class IEProxySearchStrategy implements ProxySearchStrategy { private void addFallbackSelector(Properties settings, ProtocolDispatchSelector ps) { String proxy = settings.getProperty("default"); if (proxy != null) { - ps.setFallbackSelector(ProxyUtil.parseProxySettings(proxy)); + Proxy defaultProxy = ProxyUtil.parseProxyString(proxy, Proxy.Type.HTTP, 0); + if (defaultProxy.type() == Proxy.Type.SOCKS) { + ps.setSelector("socket", new FixedProxySelector(defaultProxy)); + return; + } + FixedProxySelector fp = new FixedProxySelector(defaultProxy); + ps.setSelector("http", fp); + ps.setSelector("https", fp); + ps.setSelector("ftp", fp); } } @@ -180,8 +188,14 @@ public class IEProxySearchStrategy implements ProxySearchStrategy { private void addSelectorForProtocol(Properties settings, String protocol, ProtocolDispatchSelector ps) { String proxy = settings.getProperty(protocol); if (proxy != null) { - Proxy.Type fb = protocol.startsWith("socks") ? Proxy.Type.SOCKS : Proxy.Type.HTTP; - ProxySelector protocolSelector = ProxyUtil.parseProxySettings(proxy, fb, 0); + Proxy.Type type; + if (protocol.startsWith("socks")) { + type = Proxy.Type.SOCKS; + protocol = "socket"; + } else { + type = Proxy.Type.HTTP; + } + ProxySelector protocolSelector = ProxyUtil.parseProxySettings(proxy, type, 0); ps.setSelector(protocol, protocolSelector); } } |