Method: Async::IO::SSLSocket#initialize

Defined in:
lib/async/io/ssl_socket.rb

#initialize(socket, context) ⇒ SSLSocket

Returns a new instance of SSLSocket.



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/async/io/ssl_socket.rb', line 66

def initialize(socket, context)
  if socket.is_a?(self.class.wrapped_klass)
    super
  else
    io = self.class.wrapped_klass.new(socket.to_io, context)
    super(io, socket.reactor)
    
    # We detach the socket from the reactor, otherwise it's possible to add the file descriptor to the selector twice, which is bad.
    socket.reactor = nil
    
    # This ensures that when the internal IO is closed, it also closes the internal socket:
    io.sync_close = true
    
    @timeout = socket.timeout
  end
end