]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Skip unnecessary peer iteration when there's no peers to ban
authorMatt Joiner <anacrolix@gmail.com>
Thu, 14 Aug 2025 02:39:59 +0000 (12:39 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 14 Aug 2025 02:40:19 +0000 (12:40 +1000)
torrent.go

index d66d51da578883dc761364da088a3cd66eb0e5c3..317bb1a466ca8ff535d5b1f876cc822f7c91a73f 100644 (file)
@@ -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