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.
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/mongo/socket/ssl.rb', line 102 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 StandardError @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.
121 122 123 |
# File 'lib/mongo/socket/ssl.rb', line 121 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.
124 125 126 |
# File 'lib/mongo/socket/ssl.rb', line 124 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.
127 128 129 |
# File 'lib/mongo/socket/ssl.rb', line 127 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.
130 131 132 |
# File 'lib/mongo/socket/ssl.rb', line 130 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.
187 188 189 190 191 192 |
# File 'lib/mongo/socket/ssl.rb', line 187 def readbyte map_exceptions do byte = socket.read(1).bytes.to_a[0] byte.nil? ? raise(EOFError) : byte end end |