Class: Mongo::Socket::SSL Private
- Inherits:
-
Mongo::Socket
- Object
- Mongo::Socket
- Mongo::Socket::SSL
- Includes:
- Loggable, OpenSSL
- Defined in:
- lib/mongo/socket/ssl.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Wrapper for TLS sockets.
Constant Summary
Constants included from Loggable
Constants inherited from Mongo::Socket
SSL_ERROR, TIMEOUT_ERROR, TIMEOUT_PACK, WRITE_CHUNK_SIZE
Instance Attribute Summary collapse
-
#context ⇒ SSLContext
readonly
private
Context The TLS context.
-
#host ⇒ String
readonly
private
Host The host to connect to.
-
#host_name ⇒ String
readonly
private
Host_name The original host name.
-
#port ⇒ Integer
readonly
private
Port The port to connect to.
Attributes inherited from Mongo::Socket
#family, #options, #socket, #timeout
Instance Method Summary collapse
-
#initialize(host, port, host_name, timeout, family, options = {}) ⇒ SSL
constructor
private
Initializes a new TLS socket.
-
#readbyte ⇒ Object
private
Read a single byte from the socket.
Methods included from Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Methods inherited from Mongo::Socket
#alive?, #close, #connectable?, #connection_address, #connection_generation, #eof?, #gets, #monitor?, #pipe, #read, #summary, #write
Constructor Details
#initialize(host, port, host_name, timeout, family, options = {}) ⇒ SSL
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Initializes a new TLS socket.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/mongo/socket/ssl.rb', line 104 def initialize(host, port, host_name, timeout, family, = {}) super(timeout, ) @host, @port, @host_name = host, port, host_name @context = create_context() @family = family @tcp_socket = ::Socket.new(family, SOCK_STREAM, 0) begin @tcp_socket.setsockopt(IPPROTO_TCP, TCP_NODELAY, 1) (@tcp_socket) run_tls_context_hooks connect! rescue @tcp_socket.close raise end end |
Instance Attribute Details
#context ⇒ SSLContext (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns context The TLS context.
123 124 125 |
# File 'lib/mongo/socket/ssl.rb', line 123 def context @context end |
#host ⇒ String (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns host The host to connect to.
126 127 128 |
# File 'lib/mongo/socket/ssl.rb', line 126 def host @host end |
#host_name ⇒ String (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns host_name The original host name.
129 130 131 |
# File 'lib/mongo/socket/ssl.rb', line 129 def host_name @host_name end |
#port ⇒ Integer (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns port The port to connect to.
132 133 134 |
# File 'lib/mongo/socket/ssl.rb', line 132 def port @port end |
Instance Method Details
#readbyte ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Read a single byte from the socket.
188 189 190 191 192 193 |
# File 'lib/mongo/socket/ssl.rb', line 188 def readbyte map_exceptions do byte = socket.read(1).bytes.to_a[0] byte.nil? ? raise(EOFError) : byte end end |