Sha256: 013676b7bed2ac9d6d4f0ba9e124907fe40094f2143db45f43097ccaddfe79af

Contents?: true

Size: 927 Bytes

Versions: 38

Compression:

Stored size: 927 Bytes

Contents

module RSence
module ArgvUtil

  # Tests, if the port on addr responds or refuses the connection.
  # Automatically replaces '0.0.0.0' with '127.0.0.1'
  def test_port( port, addr='127.0.0.1' )
    require 'socket'
    require 'timeout'
    begin
      addr = '127.0.0.1' if addr == '0.0.0.0'
      timeout(1) do
        if RUBY_VERSION.to_f >= 1.9
          sock = TCPSocket.open( addr, port )
        else
          begin
            sock = TCPsocket.open( addr, port )
          rescue NameError => e # Rubinius
            warn "TCPsocket not available, trying TCPSocket.."
            sock = TCPSocket.open( addr, port )
          end
        end
        sock.close
      end
      return true
    rescue Timeout::Error
      puts "Address #{addr} port #{port} timed out"
      return false
    rescue Errno::ECONNREFUSED
      return false
    rescue => e
      warn e.inspect
      return false
    end
  end

end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
rsence-pre-3.0.0.16 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.15 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.14 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.12 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.11 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.10 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.9 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.8 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.7 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.6 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.5 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.4 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.3 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.2 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.1 lib/rsence/argv/test_port.rb
rsence-pre-3.0.0.0 lib/rsence/argv/test_port.rb
rsence-pre-2.3.0.26 lib/rsence/argv/test_port.rb
rsence-pre-2.3.0.25 lib/rsence/argv/test_port.rb
rsence-pre-2.3.0.24 lib/rsence/argv/test_port.rb
rsence-pre-2.3.0.23 lib/rsence/argv/test_port.rb