123456789_123456789_123456789_123456789_123456789_

Class: Net::Protocol

Do not use. This class is for internal use only.
Relationships & Source Files
Inherits: Object
Defined in: lib/net/protocol.rb

Overview

internal use only

Constant Summary

  • TCP_SOCKET_NEW_HAS_OPEN_TIMEOUT = private
    # File 'lib/net/protocol.rb', line 59
    if tcp_socket_parameters != [[:rest]]
      tcp_socket_parameters.include?([:key, :open_timeout])
    else
      # Use Socket.tcp to find out since there is no parameters information for TCPSocket#initialize
      # See discussion in https://github.com/ruby/net-http/pull/224
      Socket.method(:tcp).parameters.include?([:key, :open_timeout])
    end
  • VERSION =
    # File 'lib/net/protocol.rb', line 29
    "0.2.2"

Class Method Summary

Instance Method Summary

Class Method Details

.protocol_param(name, val) (private)

[ GitHub ]

  
# File 'lib/net/protocol.rb', line 32

def Protocol.protocol_param(name, val)
  module_eval(<<-End, __FILE__, __LINE__ + 1)
    def #{name}
      #{val}
    end
  End
end

Instance Method Details

#ssl_socket_connect(s, timeout) (private)

[ GitHub ]

  
# File 'lib/net/protocol.rb', line 40

def ssl_socket_connect(s, timeout)
  if timeout
    while true
      raise Net::OpenTimeout if timeout <= 0
      start = Process.clock_gettime Process::CLOCK_MONOTONIC
      # to_io is required because SSLSocket doesn't have wait_readable yet
      case s.connect_nonblock(exception: false)
      when :wait_readable; s.to_io.wait_readable(timeout)
      when :wait_writable; s.to_io.wait_writable(timeout)
      else; break
      end
      timeout -= Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
    end
  else
    s.connect
  end
end