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

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