in lib/crawler/url_validator/tcp_check_concern.rb [12:33]
def validate_tcp
if proxy_configured?
warning = 'TCP connection check could not be performed via an HTTP proxy.'
return validation_warn(:tcp, warning)
end
host = url.host
port = url.inferred_port
details = { host:, port: }
Socket.tcp(host, port, connect_timeout: Crawler::UrlValidator::TCP_CHECK_TIMEOUT) do
validation_ok(:tcp, 'TCP connection successful', details)
end
rescue Errno::ETIMEDOUT
validation_fail(:tcp, <<~MESSAGE, details)
TCP connection to
instance is allowed to connect to your servers.
MESSAGE
rescue SocketError, SystemCallError => e
validation_fail(:tcp, "TCP connection to #{host}:#{port} failed: #{e}", details)
end