RFR: 8318130: SocksSocketImpl needlessly encodes hostname for IPv6 addresses
Daniel Jeliński
djelinski at openjdk.org
Fri Oct 20 08:05:36 UTC 2023
On Thu, 19 Oct 2023 12:10:02 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:
> This patch fixes the encoding of IPv6 addresses in the URI provided to ProxySelector.
>
> The original code percent-encoded the square brackets added around the IPv6 addresses, producing URIs that could not be parsed correctly.
>
> The proposed code does not percent-encode the IPv6 addresses at all.
>
> Added a test to verify that different forms of addresses are processed correctly. The test verifies the handling of IPv4 addresses, IPv6 without scope, IPv6 with numeric scope, IPv6 with textual scope (only if present on the machine running tests), hostnames and FQDNs
>
> Tier1-3 tests passed.
ProxySelector.getDefault may return null if someone explicitly calls ProxySelector.setDefault(null); otherwise it's initialized to an instance of DefaultProxySelector [here](https://github.com/openjdk/jdk/blob/4812cabaa489e99481facddce69686a9fee29c44/src/java.base/share/classes/java/net/ProxySelector.java#L73-L78).
The modified code is used for the common case. DefaultProxySelector reads system proxy settings every time.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16265#issuecomment-1772269000
More information about the net-dev
mailing list