Compare commits

...

2 Commits

Author SHA1 Message Date
Michael
ae62bc63d2
Merge 8ab8edc0da into 94bceb8683 2025-07-11 14:05:42 +00:00
Michael Herstine
8ab8edc0da 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.
2025-02-25 17:18:09 -08:00

View File

@ -266,8 +266,9 @@ class Request
Resolv::DNS.open do |dns| Resolv::DNS.open do |dns|
dns.timeouts = 5 dns.timeouts = 5
addresses = dns.getaddresses(host) 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 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 end
socks = [] socks = []