Class: Redis::Connection::Universal

Inherits:
Ruby
  • Object
show all
Defined in:
lib/redis/connection/universal.rb

Instance Method Summary collapse

Instance Method Details

#connect(uri, timeout) ⇒ Object



7
8
9
10
# File 'lib/redis/connection/universal.rb', line 7

def connect(uri, timeout)
  super if uri.scheme == 'redis'
  return connect_ssl(uri, timeout) if uri.scheme == 'redis+ssl'
end

#connect_ssl(uri, timeout) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/redis/connection/universal.rb', line 12

def connect_ssl(uri, timeout)
  with_timeout(timeout.to_f / 1_000_000) do
    tcp_sock = TCPSocket.new(uri.host, uri.port)
	  tcp_sock.setsockopt Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1
	  ssl_context = OpenSSL::SSL::SSLContext.new()
	  @sock = OpenSSL::SSL::SSLSocket.new(tcp_sock, ssl_context)
	  @sock.sync_close = true
	  @sock.connect
	end
end