Sha256: e352b25c19af6b9ad79d75fff182bca34a8d1711fe42320e53b69711d95429a2
Contents?: true
Size: 816 Bytes
Versions: 42
Compression:
Stored size: 816 Bytes
Contents
# frozen_string_literal: true module Nonnative class Port def initialize(process) @process = process @timeout = Nonnative::Timeout.new(process.timeout) end def open? timeout.perform do open_socket true rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH sleep_interval retry end end def closed? timeout.perform do open_socket raise Nonnative::Error rescue Nonnative::Error sleep_interval retry rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET true end end private attr_reader :process, :timeout def open_socket TCPSocket.new(process.host, process.port).close end def sleep_interval sleep 0.01 end end end
Version data entries
42 entries across 42 versions & 1 rubygems