aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java
diff options
context:
space:
mode:
authorOmair Majid <omajid@redhat.com>2013-10-01 23:43:31 -0400
committerOmair Majid <omajid@redhat.com>2013-10-01 23:43:31 -0400
commitcfae43ca6f649bfc6427b0132a9068ef6ded4e74 (patch)
tree1fb9065aa38371308e66cc8d73b1c36e923e6d6d /netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java
parent4ab697ce4173547f73e52c0526ac21e3b23053c7 (diff)
Unit tests for BrowserAwareProxySelector
Also move duplicate code for selecting a host and port depending on the protocol into JNLPProxySelector.getFromArguments. The semantics of 'sameProxy' are different between BrowserAwareProxySelector and JNLPProxySelector; the socks proxy is included in firefox.
Diffstat (limited to 'netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java')
-rw-r--r--netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java36
1 files changed, 32 insertions, 4 deletions
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java b/netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java
index e92b2c9..4fb760a 100644
--- a/netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java
+++ b/netx/net/sourceforge/jnlp/runtime/JNLPProxySelector.java
@@ -288,15 +288,42 @@ public abstract class JNLPProxySelector extends ProxySelector {
* @return a List of Proxy objects
*/
private List<Proxy> getFromConfiguration(URI uri) {
+ return getFromArguments(uri, sameProxy, false,
+ proxyHttpsHost, proxyHttpsPort,
+ proxyHttpHost, proxyHttpPort,
+ proxyFtpHost, proxyFtpPort,
+ proxySocks4Host, proxySocks4Port);
+ }
+
+ /**
+ * Returns a list of proxies by using the arguments
+ *
+ * @return a List of Proxy objects
+ */
+ protected static List<Proxy> getFromArguments(URI uri,
+ boolean sameProxy, boolean sameProxyIncludesSocket,
+ String proxyHttpsHost, int proxyHttpsPort,
+ String proxyHttpHost, int proxyHttpPort,
+ String proxyFtpHost, int proxyFtpPort,
+ String proxySocks4Host, int proxySocks4Port) {
+
List<Proxy> proxies = new ArrayList<Proxy>();
String scheme = uri.getScheme();
+ boolean socksProxyAdded = false;
+
if (sameProxy) {
- if (proxyHttpHost != null && (scheme.equals("https") || scheme.equals("http") || scheme.equals("ftp"))) {
+ if (proxyHttpHost != null) {
SocketAddress sa = new InetSocketAddress(proxyHttpHost, proxyHttpPort);
- Proxy proxy = new Proxy(Type.HTTP, sa);
- proxies.add(proxy);
+ if ((scheme.equals("https") || scheme.equals("http") || scheme.equals("ftp"))) {
+ Proxy proxy = new Proxy(Type.HTTP, sa);
+ proxies.add(proxy);
+ } else if (scheme.equals("socket") && sameProxyIncludesSocket) {
+ Proxy proxy = new Proxy(Type.SOCKS, sa);
+ proxies.add(proxy);
+ socksProxyAdded = true;
+ }
}
} else if (scheme.equals("http") && proxyHttpHost != null) {
SocketAddress sa = new InetSocketAddress(proxyHttpHost, proxyHttpPort);
@@ -309,9 +336,10 @@ public abstract class JNLPProxySelector extends ProxySelector {
proxies.add(new Proxy(Type.HTTP, sa));
}
- if (proxySocks4Host != null) {
+ if (!socksProxyAdded && (proxySocks4Host != null)) {
SocketAddress sa = new InetSocketAddress(proxySocks4Host, proxySocks4Port);
proxies.add(new Proxy(Type.SOCKS, sa));
+ socksProxyAdded = true;
}
if (proxies.size() == 0) {