From df53b12c42252be8ffe9aa1eb1a9adf3002f1545 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 1 Aug 2017 15:45:48 +0200 Subject: Make proxy type detection more intelligent, decouple from target protocol --- .../desktop/gnome/GnomeProxySearchStrategy.java | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src/main/java/com/btr/proxy/search/desktop/gnome/GnomeProxySearchStrategy.java') diff --git a/src/main/java/com/btr/proxy/search/desktop/gnome/GnomeProxySearchStrategy.java b/src/main/java/com/btr/proxy/search/desktop/gnome/GnomeProxySearchStrategy.java index 240fb39..10d237a 100644 --- a/src/main/java/com/btr/proxy/search/desktop/gnome/GnomeProxySearchStrategy.java +++ b/src/main/java/com/btr/proxy/search/desktop/gnome/GnomeProxySearchStrategy.java @@ -2,6 +2,7 @@ package com.btr.proxy.search.desktop.gnome; import java.io.File; import java.io.IOException; +import java.net.Proxy; import java.net.ProxySelector; import java.util.Properties; @@ -17,14 +18,13 @@ import org.xml.sax.SAXException; import com.btr.proxy.search.ProxySearchStrategy; import com.btr.proxy.selector.direct.NoProxySelector; -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.EmptyXMLResolver; import com.btr.proxy.util.Logger; +import com.btr.proxy.util.Logger.LogLevel; import com.btr.proxy.util.ProxyException; import com.btr.proxy.util.ProxyUtil; -import com.btr.proxy.util.Logger.LogLevel; /***************************************************************************** * Loads the Gnome proxy settings from the Gnome GConf settings. @@ -219,9 +219,9 @@ public class GnomeProxySearchStrategy implements ProxySearchStrategy { ProtocolDispatchSelector ps) throws NumberFormatException { String proxyHost = settings.getProperty("/system/http_proxy/host", null); int proxyPort = Integer.parseInt(settings.getProperty("/system/http_proxy/port", "0").trim()); - if (proxyHost != null && proxyHost.length() > 0 && proxyPort > 0) { + if (proxyHost != null && proxyHost.length() > 0) { Logger.log(getClass(), LogLevel.TRACE, "Gnome http proxy is {0}:{1}", proxyHost, proxyPort); - ps.setSelector("http", new FixedProxySelector(proxyHost.trim(), proxyPort)); + ps.setSelector("http", ProxyUtil.parseProxySettings(proxyHost.trim(), Proxy.Type.HTTP, proxyPort)); } } @@ -236,9 +236,9 @@ public class GnomeProxySearchStrategy implements ProxySearchStrategy { ProtocolDispatchSelector ps) throws NumberFormatException { String proxyHost = settings.getProperty("/system/proxy/socks_host", null); int proxyPort = Integer.parseInt(settings.getProperty("/system/proxy/socks_port", "0").trim()); - if (proxyHost != null && proxyHost.length() > 0 && proxyPort > 0) { + if (proxyHost != null && proxyHost.length() > 0) { Logger.log(getClass(), LogLevel.TRACE, "Gnome socks proxy is {0}:{1}", proxyHost, proxyPort); - ps.setSelector("socks", new FixedProxySelector(proxyHost.trim(), proxyPort)); + ps.setSelector("socks", ProxyUtil.parseProxySettings(proxyHost.trim(), Proxy.Type.SOCKS, proxyPort)); } } @@ -252,9 +252,9 @@ public class GnomeProxySearchStrategy implements ProxySearchStrategy { ProtocolDispatchSelector ps) throws NumberFormatException { String proxyHost = settings.getProperty("/system/proxy/ftp_host", null); int proxyPort = Integer.parseInt(settings.getProperty("/system/proxy/ftp_port", "0").trim()); - if (proxyHost != null && proxyHost.length() > 0 && proxyPort > 0) { + if (proxyHost != null && proxyHost.length() > 0) { Logger.log(getClass(), LogLevel.TRACE, "Gnome ftp proxy is {0}:{1}", proxyHost, proxyPort); - ps.setSelector("ftp", new FixedProxySelector(proxyHost.trim(), proxyPort)); + ps.setSelector("ftp", ProxyUtil.parseProxySettings(proxyHost.trim(), Proxy.Type.HTTP, proxyPort)); } } @@ -269,10 +269,11 @@ public class GnomeProxySearchStrategy implements ProxySearchStrategy { ProtocolDispatchSelector ps) throws NumberFormatException { String proxyHost = settings.getProperty("/system/proxy/secure_host", null); int proxyPort = Integer.parseInt(settings.getProperty("/system/proxy/secure_port", "0").trim()); - if (proxyHost != null && proxyHost.length() > 0 && proxyPort > 0) { + if (proxyHost != null && proxyHost.length() > 0) { Logger.log(getClass(), LogLevel.TRACE, "Gnome secure proxy is {0}:{1}", proxyHost, proxyPort); - ps.setSelector("https", new FixedProxySelector(proxyHost.trim(), proxyPort)); - ps.setSelector("sftp", new FixedProxySelector(proxyHost.trim(), proxyPort)); + ProxySelector ps2 = ProxyUtil.parseProxySettings(proxyHost.trim(), Proxy.Type.HTTP, proxyPort); + ps.setSelector("https", ps2); + ps.setSelector("sftp", ps2); } } -- cgit v1.2.3-55-g7522