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