class LogStashLogger::Device::TCP

Attributes

ssl_certificate[R]

Public Class Methods

new(opts) click to toggle source
Calls superclass method LogStashLogger::Device::Socket::new
# File lib/logstash-logger/device/tcp.rb, line 8
def initialize(opts)
  super

  @ssl_certificate = opts[:ssl_certificate]
  @ssl_context = opts[:ssl_context]
  @use_ssl = !!(@ssl_certificate || opts[:ssl_context])
  @use_ssl = opts[:ssl_enable] if opts.has_key? :ssl_enable
  if opts.has_key?(:use_ssl)
    @use_ssl = opts[:use_ssl]
    warn "[LogStashLogger] The use_ssl option is deprecated. Use ssl_enable instead."
  end
  @verify_hostname = opts.fetch(:verify_hostname, true)
end

Public Instance Methods

connect() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 31
def connect
  if use_ssl?
    io.connect
    verify_hostname!
  end
  io
end
io() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 39
def io
  @io ||= if use_ssl?
    ssl_io
  else
    tcp_io
  end
end
ssl_context() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 22
def ssl_context
  return unless use_ssl?
  @ssl_context || certificate_context
end
use_ssl?() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 27
def use_ssl?
  @use_ssl
end

Protected Instance Methods

certificate_context() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 61
def certificate_context
  return unless @ssl_certificate
  @certificate_context ||= OpenSSL::SSL::SSLContext.new.tap do |ctx|
    ctx.set_params(cert: @ssl_certificate)
  end
end
hostname() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 77
def hostname
  if String === @verify_hostname
    @verify_hostname
  else
    @host
  end
end
ssl_io() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 55
def ssl_io
  ssl_context ?
    OpenSSL::SSL::SSLSocket.new(tcp_io, ssl_context) :
    OpenSSL::SSL::SSLSocket.new(tcp_io)
end
tcp_io() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 49
def tcp_io
  TCPSocket.new(@host, @port).tap do |socket|
    socket.sync = sync unless sync.nil?
  end
end
verify_hostname!() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 73
def verify_hostname!
  @io.post_connection_check(hostname) if verify_hostname?
end
verify_hostname?() click to toggle source
# File lib/logstash-logger/device/tcp.rb, line 68
def verify_hostname?
  return false unless ssl_context
  !! @verify_hostname
end