Parent

Included Modules

Mongo::SSLSocket

A basic wrapper over Ruby's SSLSocket that initiates a TCP connection over SSL and then provides an basic interface mirroring Ruby's TCPSocket, vis., TCPSocket#send and TCPSocket#read.

Public Class Methods

new(host, port, op_timeout=nil, connect_timeout=nil) click to toggle source
# File lib/mongo/util/ssl_socket.rb, line 13
def initialize(host, port, op_timeout=nil, connect_timeout=nil)
  @op_timeout = op_timeout
  @connect_timeout = connect_timeout
  @pid = Process.pid

  @tcp_socket = ::TCPSocket.new(host, port)
  @tcp_socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)

  @socket = OpenSSL::SSL::SSLSocket.new(@tcp_socket)
  @socket.sync_close = true

  connect
end

Public Instance Methods

connect() click to toggle source
# File lib/mongo/util/ssl_socket.rb, line 27
def connect
  if @connect_timeout
    Timeout::timeout(@connect_timeout, ConnectionTimeoutError) do
      @socket.connect
    end
  else
    @socket.connect
  end
end
read(length, buffer) click to toggle source
# File lib/mongo/util/ssl_socket.rb, line 41
def read(length, buffer)
  if @op_timeout
    Timeout::timeout(@op_timeout, OperationTimeout) do
      @socket.sysread(length, buffer)
    end
  else
    @socket.sysread(length, buffer)
  end 
end
send(data) click to toggle source
# File lib/mongo/util/ssl_socket.rb, line 37
def send(data)
  @socket.syswrite(data)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.