th: smile sweet sadistic surprise service

should've just hardcoded instead but noooooooooooo

"needs to be decent"
This commit is contained in:
Kouhai 2024-02-12 02:35:47 -08:00 committed by Skye
parent 6a5351ede0
commit 0d1e55d566
Signed by: me
GPG key ID: 0104BC05F41B77B8

View file

@ -268,13 +268,23 @@ class Request
addresses = addresses.filter { |addr| addr.is_a?(Resolv::IPv6) }.take(2) + addresses.filter { |addr| !addr.is_a?(Resolv::IPv6) }.take(2) addresses = addresses.filter { |addr| addr.is_a?(Resolv::IPv6) }.take(2) + addresses.filter { |addr| !addr.is_a?(Resolv::IPv6) }.take(2)
end end
rescue ResolvError rescue ResolvError
end
if addresses.empty?
# try /etc/hosts file # try /etc/hosts file
# https://github.com/mastodon/mastodon/issues/9436 # https://github.com/mastodon/mastodon/issues/9436
Resolv::Hosts.open do |dns| Resolv::Hosts.new.each_address(host) do |address|
addresses = dns.getaddresses(host) case address
addresses = addresses.filter { |addr| addr.is_a?(Resolv::IPv6) }.take(2) + addresses.filter { |addr| !addr.is_a?(Resolv::IPv6) }.take(2) when Resolv::IPv4::Regex
addresses << Resolv::IPv4.create(address)
when Resolv::IPv6::Regex
addresses << Resolv::IPv6.create(address)
else
raise ResolvError.new("cannot interpret as address: #{address}")
end end
end end
addresses = addresses.filter { |addr| addr.is_a?(Resolv::IPv6) }.take(2) + addresses.filter { |addr| !addr.is_a?(Resolv::IPv6) }.take(2)
end
end end
socks = [] socks = []