class TCPClient::SSLSocket

Public Class Methods

new(socket, address, configuration, deadline, exception) click to toggle source
Calls superclass method
# File lib/tcp-client/ssl_socket.rb, line 16
def initialize(socket, address, configuration, deadline, exception)
  ssl_params = Hash[configuration.ssl_params]
  super(socket, create_context(ssl_params))
  self.sync_close = true
  self.hostname = address.hostname
  deadline.valid? ? connect_with_deadline(deadline, exception) : connect
  post_connection_check(address.hostname) if should_verify?(ssl_params)
end

Private Instance Methods

connect_with_deadline(deadline, exception) click to toggle source
# File lib/tcp-client/ssl_socket.rb, line 31
def connect_with_deadline(deadline, exception)
  with_deadline(deadline, exception) { connect_nonblock(exception: false) }
end
create_context(ssl_params) click to toggle source
# File lib/tcp-client/ssl_socket.rb, line 27
def create_context(ssl_params)
  OpenSSL::SSL::SSLContext.new.tap { |ctx| ctx.set_params(ssl_params) }
end
should_verify?(ssl_params) click to toggle source
# File lib/tcp-client/ssl_socket.rb, line 35
def should_verify?(ssl_params)
  ssl_params[:verify_mode] != OpenSSL::SSL::VERIFY_NONE
end