Skip to content

Commit 74812b9

Browse files
committed
Use client for hostname when blank for rfc3164
1 parent 244468d commit 74812b9

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

server.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"crypto/tls"
66
"errors"
77
"net"
8+
"strings"
89
"sync"
910
"time"
1011

@@ -252,6 +253,13 @@ func (s *Server) parser(line []byte, client string, tlsPeer string) {
252253

253254
logParts := parser.Dump()
254255
logParts["client"] = client
256+
if logParts["hostname"] == "" && s.format == RFC3164 {
257+
if i := strings.Index(client, ":"); i > 1 {
258+
logParts["hostname"] = client[:i]
259+
} else {
260+
logParts["hostname"] = client
261+
}
262+
}
255263
logParts["tls_peer"] = tlsPeer
256264

257265
s.handler.Handle(logParts, int64(len(line)), err)

server_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ type ServerSuite struct {
1818

1919
var _ = Suite(&ServerSuite{})
2020
var exampleSyslog = "<31>Dec 26 05:08:46 hostname tag[296]: content"
21+
var exampleSyslogNoTSTagHost = "<14>INFO leaving (1) step postscripts"
2122
var exampleRFC5424Syslog = "<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - 'su root' failed for lonvick on /dev/pts/8"
2223

2324
func (s *ServerSuite) TestTailFile(c *C) {
@@ -166,6 +167,23 @@ func (s *ServerSuite) TestUDP3164(c *C) {
166167
c.Check(handler.LastError, IsNil)
167168
}
168169

170+
func (s *ServerSuite) TestUDP3164NoTag(c *C) {
171+
handler := new(HandlerMock)
172+
server := NewServer()
173+
server.SetFormat(RFC3164)
174+
server.SetHandler(handler)
175+
server.SetTimeout(10)
176+
server.goParseDatagrams()
177+
server.datagramChannel <- DatagramMessage{[]byte(exampleSyslogNoTSTagHost), "127.0.0.1:45789"}
178+
close(server.datagramChannel)
179+
server.Wait()
180+
c.Check(handler.LastLogParts["hostname"], Equals, "127.0.0.1")
181+
c.Check(handler.LastLogParts["tag"], Equals, "")
182+
c.Check(handler.LastLogParts["content"], Equals, "INFO leaving (1) step postscripts")
183+
c.Check(handler.LastMessageLength, Equals, int64(len(exampleSyslogNoTSTagHost)))
184+
c.Check(handler.LastError, IsNil)
185+
}
186+
169187
func (s *ServerSuite) TestUDP6587(c *C) {
170188
handler := new(HandlerMock)
171189
server := NewServer()

0 commit comments

Comments
 (0)