class X509Sleuth::Client

Attributes

connect_error[R]
host[R]
port[R]
timeout_secs[R]

Public Class Methods

new(host, options = {}) click to toggle source
# File lib/x509_sleuth/client.rb, line 9
def initialize(host, options = {})
  options = {
    port:           443,
    timeout_secs:   15
  }.merge(options)

  @host         = host
  @port         = options[:port]
  @timeout_secs = options[:timeout_secs]
end

Public Instance Methods

connect() click to toggle source
# File lib/x509_sleuth/client.rb, line 30
def connect
  Timeout::timeout(@timeout_secs) { ssl_socket.connect }
rescue SystemCallError, SocketError, OpenSSL::SSL::SSLError, Timeout::Error => e
  @connect_error = e
end
connect_failed?() click to toggle source
# File lib/x509_sleuth/client.rb, line 36
def connect_failed?
  connect_error ? true : false
end
peer_certificate() click to toggle source
# File lib/x509_sleuth/client.rb, line 40
def peer_certificate
  @peer_certficate ||= ssl_socket.peer_cert
end
ssl_socket() click to toggle source
# File lib/x509_sleuth/client.rb, line 24
def ssl_socket
  @ssl_socket ||= OpenSSL::SSL::SSLSocket.new(tcp_socket)
  @ssl_socket.hostname = @host
  @ssl_socket
end
tcp_socket() click to toggle source
# File lib/x509_sleuth/client.rb, line 20
def tcp_socket
  @tcp_socket ||= TCPSocket.new(@host, @port)
end