DefaultProxySelector socks override (original) (raw)
Chris Hegarty chris.hegarty at oracle.com
Wed Mar 27 08:54:20 PDT 2013
- Previous message: hg: jdk8/tl/langtools: 7059170: Assume availablility of URLClassLoader.close
- Next message: hg: jdk8/tl/jdk: 8010837: FileInputStream.available() throw IOException when encountering negative available values
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[cc'ing net-dev, we can then probably drop core-libs-dev and continue the discussion over on net-dev]
Christos,
SOCKS is really old and not as widely deployed as other proxies. That said, I don't have any specific problem with your proposal. SOCKS is really in maintenance mode in the JDK, but I do see this as a reasonable request/proposal.
Since socksNonProxyHosts is only set on Mac I can only presume that it is a remanent of the mac port. I would prefer to make the cosmetic changes as part of this patch. I cannot see that we need to keep socksNonProxyHosts, as it does nothing in the JDK anyway.
Can you do this?
-Chris.
On 03/27/2013 02:41 PM, christos at zoulas.com wrote:
This trivial patch add "socksNonProxyHosts" to the default proxy, so that we can select which socket traffic will be directed to the proxy and which not. There is currently no way to do this. In my scenario, I have applications that would benefit in terms of performance to connect directly to our internal network hosts, and at the same time need to connect to the outside via our socks proxy. Having all of them go through the socks proxy would require me to buy a very expensive proxy, and suffer the latency anyway. I would also like to note that the "socksNonProxyHosts" variable is in:
jdk/src/share/native/java/lang/System.c: PUTPROP(props, "socksNonProxyHosts", sprops->exceptionList); for MacOS/X but nowhere else. Finally (not in this patch), it would be nice to provide socks.nonProxyHosts etc. to be symmetric with the other http, https, and ftp variables. But this is purely cosmetic. And here's the patch... Enjoy, christos --- jdk/src/share/classes/sun/net/spi/DefaultProxySelector.java.orig Wed Mar 27 10:26:36 2013 -0400 +++ jdk/src/share/classes/sun/net/spi/DefaultProxySelector.java Wed Mar 27 10:28:15 2013 -0400 @@ -124,6 +124,7 @@ final String defaultVal; static NonProxyInfo ftpNonProxyInfo = new NonProxyInfo("ftp.nonProxyHosts", null, null, defStringVal); static NonProxyInfo httpNonProxyInfo = new NonProxyInfo("http.nonProxyHosts", null, null, defStringVal); + static NonProxyInfo socksNonProxyInfo = new NonProxyInfo("socksNonProxyHosts", null, null, defStringVal); NonProxyInfo(String p, String s, RegexpPool pool, String d) { property = p; @@ -186,7 +187,9 @@ pinfo = NonProxyInfo.httpNonProxyInfo; } else if ("ftp".equalsIgnoreCase(protocol)) { pinfo = NonProxyInfo.ftpNonProxyInfo; - } + } else if ("socket".equalsIgnoreCase(protocol)) { + pinfo = NonProxyInfo.socksNonProxyInfo; + } /** * Let's check the System properties for that protocol
- Previous message: hg: jdk8/tl/langtools: 7059170: Assume availablility of URLClassLoader.close
- Next message: hg: jdk8/tl/jdk: 8010837: FileInputStream.available() throw IOException when encountering negative available values
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]