In Files

  • openssl/lib/openssl/ssl.rb

Parent

Object

Class/Module Index [+]

Quicksearch
No matching classes.

OpenSSL::SSL::SSLServer

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

Attributes

start_immediately[RW]

When true then accept works exactly the same as TCPServer#accept

Public Class Methods

new(svr, ctx) click to toggle source

Creates a new instance of SSLServer.

 
 # File openssl/lib/openssl/ssl.rb, line 488
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).unpack('H*')[0]
 @ctx.session_id_context = session_id
 end
 @start_immediately = true
end
 

Public Instance Methods

accept() click to toggle source

Works similar to TCPServer#accept.

 
 # File openssl/lib/openssl/ssl.rb, line 516
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
 
close() click to toggle source

See IO#close for details.

 
 # File openssl/lib/openssl/ssl.rb, line 537
def close
 @svr.close
end
 
listen(backlog=Socket::SOMAXCONN) click to toggle source

See TCPServer#listen for details.

 
 # File openssl/lib/openssl/ssl.rb, line 506
def listen(backlog=Socket::SOMAXCONN)
 @svr.listen(backlog)
end
 
shutdown(how=Socket::SHUT_RDWR) click to toggle source

See BasicSocket#shutdown for details.

 
 # File openssl/lib/openssl/ssl.rb, line 511
def shutdown(how=Socket::SHUT_RDWR)
 @svr.shutdown(how)
end
 
to_io() click to toggle source

Returns the TCPServer passed to the SSLServer when initialized.

 
 # File openssl/lib/openssl/ssl.rb, line 501
def to_io
 @svr
end
 

AltStyle によって変換されたページ (->オリジナル) /