1. OpenSSL::
  2. SSL::
  3. SSLServer

class OpenSSL::SSL::SSLServer

SSLServer represents a TCP/IP server socket with Secure Sockets Layer.

Attributes

start_immediately[RW]

When true thenaccept works exactly the same asTCPServer#accept

Public Class Methods

Source
# File ext/openssl/lib/openssl/ssl.rb, line 486definitialize(svr,ctx)@svr =svr@ctx =ctxunlessctx.session_id_context# see #6137 - session id may not exceed 32 bytesprng =::Random.new($0.hash)session_id =prng.bytes(16).unpack1('H*')@ctx.session_id_context =session_idend@start_immediately =trueend

Creates a new instance ofSSLServer.

Public Instance Methods

Source
# File ext/openssl/lib/openssl/ssl.rb, line 514defaccept# Socket#accept returns [socket, addrinfo].# TCPServer#accept returns a socket.# The following comma strips addrinfo.sock, =@svr.acceptbeginssl =OpenSSL::SSL::SSLSocket.new(sock,@ctx)ssl.sync_close =truessl.acceptif@start_immediatelysslrescueException=>exifsslssl.closeelsesock.closeendraiseexendend

Works similar toTCPServer#accept.

Source
# File ext/openssl/lib/openssl/ssl.rb, line 535defclose@svr.closeend

SeeIO#close for details.

Source
# File ext/openssl/lib/openssl/ssl.rb, line 504deflisten(backlog=Socket::SOMAXCONN)@svr.listen(backlog)end

SeeTCPServer#listen for details.

Source
# File ext/openssl/lib/openssl/ssl.rb, line 509defshutdown(how=Socket::SHUT_RDWR)@svr.shutdown(how)end

SeeBasicSocket#shutdown for details.

Source
# File ext/openssl/lib/openssl/ssl.rb, line 499defto_io@svrend

Returns theTCPServer passed to theSSLServer when initialized.