On Mon, 18 Oct 2021 19:25:12 GMT, Daniel Jeliński <d...@openjdk.java.net> wrote:

> With this patch DefaultProxySelector first attempts to use proxy config 
> autodetection (http://wpad/wpad.dat) when that is configured and available.
> If proxy config autodetection is unavailable, selector tries to use 
> configured proxy script (again, if configured and available)
> If both the above options fail, selector uses the configured proxy.
> 
> Verified on Windows 10 that:
> - when `fAutoDetect` is true, http://wpad/wpad.dat refers to an existing 
> file, the file has correct syntax and returns a proxy, that proxy is used
> - when `fAutoDetect` is true, but the autoconfig file is not available / 
> unusable for any reason, selector fails over to the next configured method
> - when `lpszAutoConfigUrl` is set and usable, the proxy returned is used
> - when `lpszAutoConfigUrl` is not set or unusable, selector fails over to 
> next method
> - when `lpszProxy` is configured, that proxy is used
> - otherwise selector uses direct connection
> 
> The proxy configuration scripts are cached on system level, so testing 
> (alternating between good and broken autoconfig script) may require waiting 
> for the caches to invalidate.

No automatic tests; to test this manually I used 2 proxy autoconfig files of 
form:

function FindProxyForURL(url, host) {
  if (url.includes("example")) {
    return "PROXY 10.4.5.6:8192";
  } else {
    return "DIRECT";
  }
}

one named `wpad.dat`, other named `proxy.pac`, returning different proxy 
addresses so that I could figure out which one was used. These files were 
served by a http server running on localhost, conveniently set up with `python 
-m http.server 80`.
Next, I added the following line to `c:\Windows\System32\drivers\etc\hosts`:

127.0.0.1 wpad

Next, I used the little Java program found in 
[JDK-8262442](https://bugs.openjdk.java.net/browse/JDK-8262442) to test what 
ProxySelector returned with different combinations of proxy configuration 
options.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5995

Reply via email to