Sha256: f8327e7b3f6e3f4f8e2217c5854e477dd7622b46a18b57fffe1639bb35d68ad5

Contents?: true

Size: 903 Bytes

Versions: 15

Compression:

Stored size: 903 Bytes

Contents

require 'openssl'

module LogStashLogger
  module Device
    class TCP < Socket
      attr_reader :ssl_certificate

      def initialize(opts)
        super

        @ssl_certificate = opts[:ssl_certificate]
        @use_ssl = !!(@ssl_certificate || opts[:use_ssl] || opts[:ssl_enable])
      end

      def use_ssl?
        @use_ssl || !@ssl_certificate.nil?
      end

      def connect
        if use_ssl?
          ssl_connect
        else
          non_ssl_connect
        end

        @io
      end

      protected

      def non_ssl_connect
        @io = TCPSocket.new(@host, @port).tap do |socket|
          socket.sync = sync unless sync.nil?
        end
      end

      def ssl_connect
        non_ssl_connect
        #openssl_cert = OpenSSL::X509::Certificate.new(::File.read(@ssl_certificate))
        @io = OpenSSL::SSL::SSLSocket.new(@io)
        @io.connect
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
logstash-logger-0.22.1 lib/logstash-logger/device/tcp.rb
logstash-logger-0.22.0 lib/logstash-logger/device/tcp.rb
logstash-logger-0.21.0 lib/logstash-logger/device/tcp.rb
logstash-logger-0.20.1 lib/logstash-logger/device/tcp.rb
logstash-logger-0.20.0 lib/logstash-logger/device/tcp.rb
logstash-logger-0.19.2 lib/logstash-logger/device/tcp.rb
logstash-logger-0.19.1 lib/logstash-logger/device/tcp.rb
logstash-logger-0.19.0 lib/logstash-logger/device/tcp.rb
logstash-logger-0.18.1 lib/logstash-logger/device/tcp.rb
logstash-logger-0.18.0 lib/logstash-logger/device/tcp.rb
logstash-logger-0.17.0 lib/logstash-logger/device/tcp.rb
logstash-logger-0.16.0 lib/logstash-logger/device/tcp.rb
logstash-logger-0.15.2 lib/logstash-logger/device/tcp.rb
logstash-logger-0.15.1 lib/logstash-logger/device/tcp.rb
logstash-logger-0.15.0 lib/logstash-logger/device/tcp.rb