Methods
Public Class methods
new(socket, context, debug_dev = nil)
# File lib/facets/more/httpaccess.rb, line 1010
  def initialize(socket, context, debug_dev = nil)
    unless SSLEnabled
      raise RuntimeError.new(
        "Ruby/OpenSSL module is required for https access.")
    end
    @context = context
    @socket = socket
    @ssl_socket = create_ssl_socket(@socket)
    @debug_dev = debug_dev
  end
Public Instance methods
<<(str)
# File lib/facets/more/httpaccess.rb, line 1073
  def <<(str)
    rv = @ssl_socket.write(str)
    @debug_dev << str if @debug_dev
    rv
  end
addr()
# File lib/facets/more/httpaccess.rb, line 1044
  def addr
    @socket.addr
  end
close()
# File lib/facets/more/httpaccess.rb, line 1048
  def close
    @ssl_socket.close
    @socket.close
  end
closed?()
# File lib/facets/more/httpaccess.rb, line 1053
  def closed?
    @socket.closed?
  end
eof?()
# File lib/facets/more/httpaccess.rb, line 1057
  def eof?
    @ssl_socket.eof?
  end
flush()
# File lib/facets/more/httpaccess.rb, line 1079
  def flush
    @ssl_socket.flush
  end
gets(*args)
# File lib/facets/more/httpaccess.rb, line 1061
  def gets(*args)
    str = @ssl_socket.gets(*args)
    @debug_dev << str if @debug_dev
    str
  end
peer_cert()
# File lib/facets/more/httpaccess.rb, line 1040
  def peer_cert
    @ssl_socket.peer_cert
  end
post_connection_check(host)
# File lib/facets/more/httpaccess.rb, line 1025
  def post_connection_check(host)
    verify_mode = @context.verify_mode || OpenSSL::SSL::VERIFY_NONE
    if verify_mode == OpenSSL::SSL::VERIFY_NONE
      return
    elsif @ssl_socket.peer_cert.nil? and
        check_mask(verify_mode, OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT)
      raise OpenSSL::SSL::SSLError, "no peer cert"
    end
    hostname = host.host
    if @ssl_socket.respond_to?(:post_connection_check)
      @ssl_socket.post_connection_check(hostname)
    end
    @context.post_connection_check(@ssl_socket.peer_cert, hostname)
  end
read(*args)
# File lib/facets/more/httpaccess.rb, line 1067
  def read(*args)
    str = @ssl_socket.read(*args)
    @debug_dev << str if @debug_dev
    str
  end
ssl_connect()
# File lib/facets/more/httpaccess.rb, line 1021
  def ssl_connect
    @ssl_socket.connect
  end
sync()
# File lib/facets/more/httpaccess.rb, line 1083
  def sync
    @ssl_socket.sync
  end
sync=(sync)
# File lib/facets/more/httpaccess.rb, line 1087
  def sync=(sync)
    @ssl_socket.sync = sync
  end
Private Instance methods
check_mask(value, mask)
# File lib/facets/more/httpaccess.rb, line 1093
  def check_mask(value, mask)
    value & mask == mask
  end
create_ssl_socket(socket)
# File lib/facets/more/httpaccess.rb, line 1097
  def create_ssl_socket(socket)
    ssl_socket = nil
    if OpenSSL::SSL.const_defined?("SSLContext")
      ctx = OpenSSL::SSL::SSLContext.new
      @context.set_context(ctx)
      ssl_socket = OpenSSL::SSL::SSLSocket.new(socket, ctx)
    else
      ssl_socket = OpenSSL::SSL::SSLSocket.new(socket)
      @context.set_context(ssl_socket)
    end
    ssl_socket
  end