Reset read deadline for syslog input (#4369)

This commit is contained in:
Greg 2018-07-17 16:47:09 -06:00 committed by GitHub
parent 1cc300710c
commit 69d22afcc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -19,7 +19,7 @@ import (
"github.com/influxdata/telegraf/plugins/inputs" "github.com/influxdata/telegraf/plugins/inputs"
) )
const defaultReadTimeout = time.Millisecond * 500 const defaultReadTimeout = time.Second * 5
const ipMaxPacketSize = 64 * 1024 const ipMaxPacketSize = 64 * 1024
// Syslog is a syslog plugin // Syslog is a syslog plugin
@ -279,19 +279,23 @@ func (s *Syslog) handle(conn net.Conn, acc telegraf.Accumulator) {
conn.Close() conn.Close()
}() }()
if s.ReadTimeout != nil && s.ReadTimeout.Duration > 0 {
conn.SetReadDeadline(time.Now().Add(s.ReadTimeout.Duration))
}
var p *rfc5425.Parser var p *rfc5425.Parser
if s.BestEffort { if s.BestEffort {
p = rfc5425.NewParser(conn, rfc5425.WithBestEffort()) p = rfc5425.NewParser(conn, rfc5425.WithBestEffort())
} else { } else {
p = rfc5425.NewParser(conn) p = rfc5425.NewParser(conn)
} }
if s.ReadTimeout != nil && s.ReadTimeout.Duration > 0 {
conn.SetReadDeadline(time.Now().Add(s.ReadTimeout.Duration))
}
p.ParseExecuting(func(r *rfc5425.Result) { p.ParseExecuting(func(r *rfc5425.Result) {
s.store(*r, acc) s.store(*r, acc)
if s.ReadTimeout != nil && s.ReadTimeout.Duration > 0 {
conn.SetReadDeadline(time.Now().Add(s.ReadTimeout.Duration))
}
}) })
} }
@ -361,7 +365,7 @@ func fields(msg rfc5424.SyslogMessage, s *Syslog) map[string]interface{} {
} }
if msg.Message() != nil { if msg.Message() != nil {
flds["message"] = *msg.Message() flds["message"] = strings.TrimSpace(*msg.Message())
} }
if msg.StructuredData() != nil { if msg.StructuredData() != nil {