Sha256: a73cc74258a048dea2fe5d565b5cea4cccd552efdfc0925f2b56b0cc3215d034

Contents?: true

Size: 781 Bytes

Versions: 4

Compression:

Stored size: 781 Bytes

Contents

require 'openssl'
module LightIO::Library
  module OpenSSL
    module SSL
      class SSLSocket
        include Base
        include LightIO::Wrap::IOWrapper

        mock ::OpenSSL::SSL::SSLSocket
        prepend LightIO::Library::IO::IOMethods

        wrap_blocking_methods :connect, :accept

        def initialize(io, *args)
          if io.is_a?(LightIO::Library::IO)
            @_wrapped_socket = io
            io = io.send(:light_io_raw_obj)
          end
          super(io, *args)
        end

        def accept_nonblock
          socket = @obj.accept_nonblock(*args)
          socket.is_a?(Symbol) ? socket : self.class._wrap(socket)
        end

        def to_io
          @_wrapped_socket || @obj.io
        end

        alias io to_io
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lightio-0.4.4 lib/lightio/library/openssl.rb
lightio-0.4.3 lib/lightio/library/openssl.rb
lightio-0.4.2 lib/lightio/library/openssl.rb
lightio-0.4.1 lib/lightio/library/openssl.rb