From 90349ff2bf27a81ef7412f15b22769ff6ca6bd6e Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 9 Aug 2017 16:36:25 +0200 Subject: 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... --- src/main/java/com/btr/proxy/util/ProxyUtil.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/btr/proxy/util/ProxyUtil.java') diff --git a/src/main/java/com/btr/proxy/util/ProxyUtil.java b/src/main/java/com/btr/proxy/util/ProxyUtil.java index 97f2af2..bfb3f70 100644 --- a/src/main/java/com/btr/proxy/util/ProxyUtil.java +++ b/src/main/java/com/btr/proxy/util/ProxyUtil.java @@ -1,7 +1,7 @@ package com.btr.proxy.util; +import java.net.InetSocketAddress; import java.net.Proxy; -import java.net.ProxySelector; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -34,11 +34,18 @@ public class ProxyUtil { * @return a FixedProxySelector using this settings, null on parse error. ************************************************************************/ - public static ProxySelector parseProxySettings(String proxyVar) { + public static FixedProxySelector parseProxySettings(String proxyVar) { return parseProxySettings(proxyVar, Proxy.Type.HTTP, 0); } - public static ProxySelector parseProxySettings(String proxyVar, Proxy.Type fallback, int fallbackPort) { + public static FixedProxySelector parseProxySettings(String proxyVar, Proxy.Type fallback, int fallbackPort) { + Proxy proxy = parseProxyString(proxyVar, fallback, fallbackPort); + if (proxy == null) + return null; + return new FixedProxySelector(proxy); + } + + public static Proxy parseProxyString(String proxyVar, Proxy.Type fallback, int fallbackPort) { if (proxyVar == null || proxyVar.trim().length() == 0) { return null; } @@ -84,7 +91,7 @@ public class ProxyUtil { port = DEFAULT_SOCKS_PROXY_PORT; } } - return new FixedProxySelector(type, host.trim(), port); + return new Proxy(type, InetSocketAddress.createUnresolved(host.trim(), port)); } /************************************************************************* -- cgit v1.2.3-55-g7522