From 72787e8d0d7c705a2d37f73f1539913ee88dedd5 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Thu, 14 Aug 2025 12:39:59 +1000 Subject: [PATCH] Skip unnecessary peer iteration when there's no peers to ban --- torrent.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/torrent.go b/torrent.go index d66d51da..317bb1a4 100644 --- a/torrent.go +++ b/torrent.go @@ -2800,11 +2800,13 @@ func (t *Torrent) finishHash(index pieceIndex) { t.storageLock.RUnlock() t.cl.lock() if correct { - for peer := range failedPeers { - t.cl.banPeerIP(peer.AsSlice()) - t.logger.WithDefaultLevel(log.Debug).Printf("smart banned %v for piece %v", peer, index) + if len(failedPeers) > 0 { + for peer := range failedPeers { + t.cl.banPeerIP(peer.AsSlice()) + t.slogger().Info("smart banned peer", "peer", peer, "piece", index) + } + t.dropBannedPeers() } - t.dropBannedPeers() t.smartBanCache.ForgetBlockSeq(iterRange(t.pieceRequestIndexBegin(index), t.pieceRequestIndexBegin(index+1))) } p.hashing = false -- 2.51.0