class LogStash::Inputs::Syslog::TCPInput

Public Class Methods

new(receiver, logger) click to toggle source
# File lib/logstash/inputs/syslog.rb, line 98
def initialize(receiver, logger)
  @logger = logger
  @receiver = receiver
  @buffer = BufferedTokenizer.new  # From eventmachine
end

Public Instance Methods

receive_data(data) click to toggle source

Messages over TCP may not be received all at once, chunk by newline.

# File lib/logstash/inputs/syslog.rb, line 105
def receive_data(data)
  @buffer.extract(data).each do |line|
    port, host = Socket.unpack_sockaddr_in(self.get_peername)
    # Trim trailing newlines
    @receiver.receive(host, port, line.chomp)
  end
end