peerconn.go | 9 +++++---- diff --git a/peerconn.go b/peerconn.go index 289b2fdf4e102c82ebfb41302c6c79f22b40c570..fc3d9df3cb6132d8f36900f2e2b472e64c5144e1 100644 --- a/peerconn.go +++ b/peerconn.go @@ -11,6 +11,7 @@ "net" "sort" "strconv" "strings" + "sync/atomic" "time" "github.com/RoaringBitmap/roaring" @@ -121,7 +122,7 @@ peerAllowedFast roaring.Bitmap PeerMaxRequests maxRequests // Maximum pending requests the peer allows. PeerExtensionIDs map[pp.ExtensionName]pp.ExtensionNumber - PeerClientName string + PeerClientName atomic.Value logger log.Logger } @@ -1043,7 +1044,7 @@ } func (c *PeerConn) logProtocolBehaviour(level log.Level, format string, arg ...interface{}) { c.logger.WithLevel(level).WithContextText(fmt.Sprintf( - "peer id %q, ext v %q", c.PeerID, c.PeerClientName, + "peer id %q, ext v %q", c.PeerID, c.PeerClientName.Load(), )).SkipCallers(1).Printf(format, arg...) } @@ -1255,7 +1256,7 @@ // c.logger.WithDefaultLevel(log.Debug).Printf("received extended handshake message:\n%s", spew.Sdump(d)) if d.Reqq != 0 { c.PeerMaxRequests = d.Reqq } - c.PeerClientName = d.V + c.PeerClientName.Store(d.V) if c.PeerExtensionIDs == nil { c.PeerExtensionIDs = make(map[pp.ExtensionName]pp.ExtensionNumber, len(d.M)) } @@ -1640,7 +1641,7 @@ return pexEvent{t, addr, f, nil} } func (c *PeerConn) String() string { - return fmt.Sprintf("connection %p", c) + return fmt.Sprintf("%T %p [id=%q, exts=%v, v=%q]", c, c, c.PeerID, c.PeerExtensionBytes, c.PeerClientName.Load()) } func (c *Peer) trust() connectionTrust {