From 5d5315c9eccfb74ec8fc9c222cc170875c6b23e5 Mon Sep 17 00:00:00 2001 From: Alexander Olofsson <alexander.olofsson@liu.se> Date: Fri, 23 Jul 2021 09:21:01 +0200 Subject: [PATCH] Improve WDS server IP detection --- app/models/wds_server.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/models/wds_server.rb b/app/models/wds_server.rb index 3371c77..835735f 100644 --- a/app/models/wds_server.rb +++ b/app/models/wds_server.rb @@ -111,8 +111,11 @@ class WdsServer < ApplicationRecord end def next_server_ip - Resolv.getaddresses(URI(url).host).select { |str| IPAddr.new(str).ipv4? }.first - rescue Resolv::ResolvError => e + res = Resolv::DNS.open { |dns| dns.getaddresses(URI(url).host) }.select { |addr| addr.is_a? Resolv::IPv4 }.first + return res.to_s if res + + IPSocket.getaddress URI(url).host + rescue StandardError => e ::Rails.logger.info "Failed to look up IP of WDS server #{name}. #{e.class}: #{e}" nil end -- GitLab