in lib/crawler/url_validator/dns_check_concern.rb [14:43]
def validate_dns
if proxy_configured?
warning = 'DNS resolution check could not be performed via an HTTP proxy.'
return validation_warn(:dns, warning)
end
resolv = Resolv.new([
Resolv::Hosts.new,
Resolv::DNS.new.tap do |dns|
dns.timeouts = Crawler::UrlValidator::DNS_CHECK_TIMEOUT
end
])
addresses = resolv.getaddresses(url.host)
if addresses.empty?
validation_fail(:dns, 'DNS name resolution failed. No suitable addresses found!')
else
validation_ok(:dns, "Domain name resolution successful: #{addresses.count} addresses found",
addresses:)
end
rescue Resolv::ResolvError, ArgumentError => e
validation_fail(:dns, <<~MESSAGE)
DNS resolution failure:
or your DNS configuration.
MESSAGE
end