Peer.go | 9 +++++++++ torrent.go | 4 +++- tracker_scraper.go | 3 ++- diff --git a/Peer.go b/Peer.go index 784e38c34a1709031582cdb772f5c53eb48e1109..d62b028fd8568e33a5bda3e629f94c0a4e986c2d 100644 --- a/Peer.go +++ b/Peer.go @@ -20,6 +20,15 @@ // Whether we can ignore poor or bad behaviour from the peer. Trusted bool } +func (me Peer) Equal(other Peer) bool { + return me.Id == other.Id && + me.Addr.String() == other.Addr.String() && + me.Source == other.Source && + me.SupportsEncryption == other.SupportsEncryption && + me.PexPeerFlags == other.PexPeerFlags && + me.Trusted == other.Trusted +} + // FromPex generate Peer from peer exchange func (me *Peer) FromPex(na krpc.NodeAddr, fs peer_protocol.PexPeerFlags) { me.Addr = ipPortAddr{append([]byte(nil), na.IP...), na.Port} diff --git a/torrent.go b/torrent.go index ca4df475a516c70fd302ac43873d1f92822b1ebb..d81437ad8e3c94b3d2cbd27d59016237429d77ea 100644 --- a/torrent.go +++ b/torrent.go @@ -269,7 +269,9 @@ } } if replaced, ok := t.peers.AddReturningReplacedPeer(p); ok { torrent.Add("peers replaced", 1) - t.logger.Printf("added %v replacing %v", p, replaced) + if !replaced.Equal(p) { + t.logger.Printf("added %v replacing %v", p, replaced) + } } t.openNewConns() for t.peers.Len() > cl.config.TorrentPeersHighWater { diff --git a/tracker_scraper.go b/tracker_scraper.go index 50b582c2bebb4fd4f25bd8e20a24c4c7c0103b81..ffe4be6cab40f5b834f2665eef367e6c334c8638 100644 --- a/tracker_scraper.go +++ b/tracker_scraper.go @@ -9,6 +9,7 @@ "net/url" "time" "github.com/anacrolix/dht/v2/krpc" + "github.com/anacrolix/log" "github.com/anacrolix/torrent/tracker" ) @@ -116,7 +117,7 @@ } me.t.cl.rLock() req := me.t.announceRequest(event) me.t.cl.rUnlock() - me.t.logger.Printf("announcing to %q: %#v", me.u.String(), req) + me.t.logger.WithValues(log.Debug).Printf("announcing to %q: %#v", me.u.String(), req) res, err := tracker.Announce{ HTTPProxy: me.t.cl.config.HTTPProxy, UserAgent: me.t.cl.config.HTTPUserAgent,