From e7d1686eae99b6e2175579df4e14553867f5b43a Mon Sep 17 00:00:00 2001 From: Bernhard Froehlich Date: Fri, 14 Dec 2018 11:08:42 +0000 Subject: [PATCH] Fix client IP in Received line for IPv6 IP addresses --- envelope.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/envelope.go b/envelope.go index 0e0f1bc..6e427e8 100644 --- a/envelope.go +++ b/envelope.go @@ -3,7 +3,7 @@ package smtpd import ( "crypto/tls" "fmt" - "strings" + "net" "time" ) @@ -34,10 +34,15 @@ func (env *Envelope) AddReceivedLine(peer Peer) { ) } + peerIP := "" + if addr, ok := peer.Addr.(*net.TCPAddr); ok { + peerIP = addr.IP.String() + } + line := wrap([]byte(fmt.Sprintf( "Received: from %s [%s] by %s with %s;%s\r\n\t%s\r\n", peer.HeloName, - strings.Split(peer.Addr.String(), ":")[0], + peerIP, peer.ServerName, peer.Protocol, tlsDetails,