about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-11-08 16:36:26 +0100
committerGitHub <noreply@github.com>2022-11-08 16:36:26 +0100
commitc989faaa6201f19e99dc7088a496e603153f0f90 (patch)
tree244deadde93124eefb9a94fb2de3ff8d7b5528b5
parent36b0ff57b7699db3d6acaa969a6c1491d1b9f9e3 (diff)
Change Request connection logic to try both IPv6 and IPv4 when available (#20108)
Fixes #19751
-rw-r--r--app/lib/request.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 1ea86862d..dd198f399 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -199,7 +199,8 @@ class Request
         rescue IPAddr::InvalidAddressError
           Resolv::DNS.open do |dns|
             dns.timeouts = 5
-            addresses = dns.getaddresses(host).take(2)
+            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