class OpenSSL::SSL::SSLServer
SSLServer represents a TCP/IP server socket with Secure Sockets Layer.
Attributes
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.
srv is an instance of
TCPServer.ctx is an instance of
OpenSSL::SSL::SSLContext.
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.