namloan created HTTPCLIENT-2350: ----------------------------------- Summary: Prevent hostname resolution Key: HTTPCLIENT-2350 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2350 Project: HttpComponents HttpClient Issue Type: Improvement Components: HttpClient (classic) Affects Versions: 5.4.1 Reporter: namloan
In [Bisq2|[https://github.com/bisq-network/bisq2]] we are querying .onion endpoints through HTTP to retrieve some data. To do this, it's needed to connect to through a SOCKS proxy and let it resolve the hostname through the Tor network as a public DNS resolution will fail. In HTTP client 4.x we had it implemented as explained in [this post]([http://stackoverflow.com/a/25203021/5616248)] - using a FakeDNSResolver and custom socket factories that do not try to resolve the .onion hostname to an InetAddress. We've just migrated to HttpClient 5.4.1. Finding out how to do this required extensive hours of debugging the library, in particular preventing the public DNS resolution as custom socket factories are deprecated. Find our solution in [this commit]([https://github.com/bisq-network/bisq2/pull/2990/commits/f93ece314fd16036e0d748ce2c6d9f79ba10e762]). In essence, we created our own ```PoolingTorHttpClientConnectionManager``` to be able to inject our own ```HttpClientConnectionOperator``` that [doesn't attempt to resolve the .onion hostname to an InetAddress]([https://github.com/bisq-network/bisq2/blob/main/network/network/src/main/java/bisq/network/http/TorHttpClientConnectionOperator.java#L117-L119]). Is there a simpler way to this? If not, it would be great to count on a simpler option so that we can remove our own connection manager and connection operator given that are mostly duplicated code from the library. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org