Sha256: 59cd90c08ff3c6b76de1c4bccbd0b809fa00a2076c00bd7c639ef110d6e34e7e
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
require 'openssl' module Celluloid module IO # SSLSocket with Celluloid::IO support class SSLSocket < Stream extend Forwardable def_delegators :@socket, :read_nonblock, :write_nonblock, :close, :closed?, :cert, :cipher, :client_ca, :peeraddr, :peer_cert, :peer_cert_chain, :post_connection_check, :verify_result, :sync_close= def initialize(io, ctx = OpenSSL::SSL::SSLContext.new) super() @context = ctx @socket = OpenSSL::SSL::SSLSocket.new(::IO.try_convert(io), @context) @socket.sync_close = true if @socket.respond_to?(:sync_close=) end def connect @socket.connect_nonblock self rescue ::IO::WaitReadable wait_readable retry end def accept @socket.accept_nonblock self rescue ::IO::WaitReadable wait_readable retry rescue ::IO::WaitWritable wait_writable retry end def to_io; @socket; end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
celluloid-io-0.17.1 | lib/celluloid/io/ssl_socket.rb |
celluloid-io-0.17.0 | lib/celluloid/io/ssl_socket.rb |
celluloid-io-0.16.5.pre0 | lib/celluloid/io/ssl_socket.rb |