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 --- .../proxy/selector/fixed/FixedProxySelector.java | 4 ++-- .../proxy/selector/fixed/FixedSocksSelector.java | 27 ---------------------- .../selector/misc/ProtocolDispatchSelector.java | 9 +++++++- .../btr/proxy/selector/pac/PacProxySelector.java | 2 +- 4 files changed, 11 insertions(+), 31 deletions(-) delete mode 100644 src/main/java/com/btr/proxy/selector/fixed/FixedSocksSelector.java (limited to 'src/main/java/com/btr/proxy/selector') diff --git a/src/main/java/com/btr/proxy/selector/fixed/FixedProxySelector.java b/src/main/java/com/btr/proxy/selector/fixed/FixedProxySelector.java index 498ac52..2de95b5 100644 --- a/src/main/java/com/btr/proxy/selector/fixed/FixedProxySelector.java +++ b/src/main/java/com/btr/proxy/selector/fixed/FixedProxySelector.java @@ -41,8 +41,8 @@ public class FixedProxySelector extends ProxySelector { * @param proxyPort the port of the proxy. ************************************************************************/ - public FixedProxySelector(String proxyHost, int proxyPort) { - this(new Proxy(Proxy.Type.HTTP, + public FixedProxySelector(Proxy.Type type, String proxyHost, int proxyPort) { + this(new Proxy(type, InetSocketAddress.createUnresolved(proxyHost, proxyPort))); } diff --git a/src/main/java/com/btr/proxy/selector/fixed/FixedSocksSelector.java b/src/main/java/com/btr/proxy/selector/fixed/FixedSocksSelector.java deleted file mode 100644 index d1f7ccc..0000000 --- a/src/main/java/com/btr/proxy/selector/fixed/FixedSocksSelector.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.btr.proxy.selector.fixed; - -import java.net.InetSocketAddress; -import java.net.Proxy; - -/***************************************************************************** - * This proxy selector is configured with a fixed proxy. This proxy will be - * returned for all URIs passed to the select method. This implementation - * can be used for SOCKS 4 and 5 proxy support. - * - * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009 - ****************************************************************************/ - -public class FixedSocksSelector extends FixedProxySelector { - - /************************************************************************* - * Constructor - * @param proxyHost the host name or IP address of the proxy to use. - * @param proxyPort the port of the proxy. - ************************************************************************/ - - public FixedSocksSelector(String proxyHost, int proxyPort) { - super(new Proxy(Proxy.Type.SOCKS, - InetSocketAddress.createUnresolved(proxyHost, proxyPort))); - } - -} diff --git a/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java b/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java index 5d7f563..02ecc44 100644 --- a/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java +++ b/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java @@ -104,11 +104,18 @@ public class ProtocolDispatchSelector extends ProxySelector { @Override public List select(URI uri) { - ProxySelector selector = this.fallbackSelector; + ProxySelector selector = null; String protocol = uri.getScheme(); if (protocol != null && this.selectors.get(protocol) != null) { selector = this.selectors.get(protocol); } + if (selector == null && this.selectors.get("socks") != null) { + // Socks should always work + selector = this.selectors.get("socks"); + } + if (selector == null) { + selector = this.fallbackSelector; + } return selector.select(uri); } diff --git a/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java b/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java index 40469b0..765a376 100644 --- a/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java +++ b/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java @@ -167,7 +167,7 @@ public class PacProxySelector extends ProxySelector { } String host = proxyDef.substring(6); - Integer port = ProxyUtil.DEFAULT_PROXY_PORT; + Integer port = ProxyUtil.DEFAULT_HTTP_PROXY_PORT; // Split port from host int indexOfPort = host.indexOf(':'); -- cgit v1.2.3-55-g7522