Class: OpenSSL::SSL::SSLServer

Inherits:
Object
  • Object
show all
Defined in:
lib/rxio/misc/openssl_accept_nonblock.rb

Overview

Monkey-Patch SSLServer Class

Instance Method Summary collapse

Instance Method Details

#accept_nonblockObject

Provide non-blocking accept



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rxio/misc/openssl_accept_nonblock.rb', line 12

def accept_nonblock
  sock, = @svr.accept_nonblock
  begin
    ssl = OpenSSL::SSL::SSLSocket.new(sock, @ctx)
    ssl.sync_close = true
    ssl.accept if @start_immediately
    ssl
  rescue Exception => ex
    if ssl
      ssl.close
    else
      sock.close
    end
    raise ex
  end
end