plugin/log: log remote port addr as well (#1573)

Log the remote's port, for IPv6 addr this means we should enclose the v6
address in brackets; make this the default for 'remote'.
This commit is contained in:
Miek Gieben
2018-02-28 18:15:12 -08:00
committed by GitHub
parent 74825a46f2
commit 5faa9e7bc1
3 changed files with 12 additions and 4 deletions

View File

@@ -43,7 +43,7 @@ func New(r *dns.Msg, rr *dnstest.Recorder, emptyValue string) Replacer {
return time.Now().Format(timeFormat)
}(),
"{size}": strconv.Itoa(req.Len()),
"{remote}": req.IP(),
"{remote}": addrToRFC3986(req.IP()),
"{port}": req.Port(),
},
emptyValue: emptyValue,
@@ -155,6 +155,14 @@ func flagsToString(h dns.MsgHdr) string {
return strings.Join(flags[:i], ",")
}
// addrToRFC3986 will add brackets to the address if it is an IPv6 address.
func addrToRFC3986(addr string) string {
if strings.Contains(addr, ":") {
return "[" + addr + "]"
}
return addr
}
const (
timeFormat = "02/Jan/2006:15:04:05 -0700"
headerReplacer = "{>"