validate_tcp

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