Spec-Zone.ru › Ruby 4.0
  1. OpenSSL::
  2. SSL::
  3. SSLServer

класс OpenSSL::SSL::SSLServer

Родительский класс:
Object
Подключённые модули:
OpenSSL::SSL::SocketForwarder

SSLServer представляет собой серверный сокет TCP/IP с уровнем защищённых сокетов.

Атрибуты

start_immediately [RW]

Если значение равно true, то accept работает точно так же, как TCPServer#accept

Публичные методы класса

new (svr, ctx) Показать исходный код
# File ext/openssl/lib/openssl/ssl.rb, line 486
def initialize(svr, ctx)
  @svr = svr
  @ctx = ctx
  unless ctx.session_id_context
    # see #6137 - session id may not exceed 32 bytes
    prng = ::Random.new($0.hash)
    session_id = prng.bytes(16).unpack1('H*')
    @ctx.session_id_context = session_id
  end
  @start_immediately = true
end

Создаёт новый экземпляр SSLServer.

  • srv — экземпляр TCPServer.

  • ctx — экземпляр OpenSSL::SSL::SSLContext.

Публичные методы экземпляра

accept () Показать исходный код
# File ext/openssl/lib/openssl/ssl.rb, line 514
def accept
  # Socket#accept returns [socket, addrinfo].
  # TCPServer#accept returns a socket.
  # The following comma strips addrinfo.
  sock, = @svr.accept
  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

Работает аналогично TCPServer#accept.

close () Показать исходный код
# File ext/openssl/lib/openssl/ssl.rb, line 535
def close
  @svr.close
end

Подробности см. в описании IO#close.

listen (backlog=Socket::SOMAXCONN) Показать исходный код
# File ext/openssl/lib/openssl/ssl.rb, line 504
def listen(backlog=Socket::SOMAXCONN)
  @svr.listen(backlog)
end

Подробности см. в описании TCPServer#listen.

shutdown (how=Socket::SHUT_RDWR) Показать исходный код
# File ext/openssl/lib/openssl/ssl.rb, line 509
def shutdown(how=Socket::SHUT_RDWR)
  @svr.shutdown(how)
end

Подробности см. в описании BasicSocket#shutdown.

to_io () Показать исходный код
# File ext/openssl/lib/openssl/ssl.rb, line 499
def to_io
  @svr
end

Возвращает TCPServer, переданный в SSLServer при инициализации.

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API