mirror of
https://github.com/mjl-/mox.git
synced 2025-07-12 17:44:35 +03:00
when logging email addresses with IDNA domain and/or special characters or utf8 in localpart, log both native utf8 form and form with escape localpart and ascii-only domain
the idea is to make it clear from the logging if non-ascii characters are used. this is implemented by making mlog recognize if a field value that will be logged has a LogString method. if so, that value is logged. dns.Domain, smtp.Address, smtp.Localpart, smtp.Path now have a LogString method. some explicit calls to String have been replaced to LogString, and some %q formatting have been replaced with %s, because the escaped localpart would already have double quotes, and double doublequotes aren't easy to read.
This commit is contained in:
@ -24,6 +24,15 @@ func (d IPDomain) String() string {
|
||||
return d.Domain.Name()
|
||||
}
|
||||
|
||||
// LogString returns a string with both ASCII-only and optional UTF-8
|
||||
// representation.
|
||||
func (d IPDomain) LogString() string {
|
||||
if len(d.IP) > 0 {
|
||||
return d.IP.String()
|
||||
}
|
||||
return d.Domain.LogString()
|
||||
}
|
||||
|
||||
// XString is like String, but only returns UTF-8 domains if utf8 is true.
|
||||
func (d IPDomain) XString(utf8 bool) string {
|
||||
if d.IsIP() {
|
||||
|
Reference in New Issue
Block a user