Cause Request.Socket.open to check `/etc/hosts` as well as DNS

when resolving hostnames.

During development, it can be useful to add entries to `/etc/hosts`
in the Docker container (to test ActivityPub federation, e.g.).
The Socket implementation in Request currently ignores `/etc/hosts`,
and only consults DNS. This patch changes that.
pull/34008/head
Michael Herstine 3 days ago
parent ebde60ca82
commit 8ab8edc0da

@ -267,8 +267,9 @@ class Request
Resolv::DNS.open do |dns|
dns.timeouts = 5
addresses = dns.getaddresses(host)
addresses = addresses.filter { |addr| addr.is_a?(Resolv::IPv6) }.take(2) + addresses.filter { |addr| !addr.is_a?(Resolv::IPv6) }.take(2)
end
addresses.concat(Resolv::Hosts.new().getaddresses(host))
addresses = addresses.filter { |addr| addr.is_a?(Resolv::IPv6) }.take(2) + addresses.filter { |addr| !addr.is_a?(Resolv::IPv6) }.take(2)
end
socks = []

Loading…
Cancel
Save