From 8458e4e0af9bded6898f55d8928bf8754c20f94c Mon Sep 17 00:00:00 2001 From: ragnarok <ragnarok> Date: Thu, 20 Oct 2005 23:28:32 +0000 Subject: [PATCH] Don't count peers we can't connect to for rarest-first calculations. --- apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java | 6 ++++++ apps/i2psnark/java/src/org/klomp/snark/Piece.java | 1 + 2 files changed, 7 insertions(+) diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java index e1785034cd..9dbe74836d 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java @@ -511,6 +511,12 @@ public class PeerCoordinator implements PeerListener { // Unchoke some random other peer unchokePeer(); + + // Don't count disconnected peers for the rarest-first calculations + for(Iterator iter = wantedPieces.iterator(); iter.hasNext(); ) { + Piece piece = (Piece)iter.next(); + piece.removePeer(peer); + } } } diff --git a/apps/i2psnark/java/src/org/klomp/snark/Piece.java b/apps/i2psnark/java/src/org/klomp/snark/Piece.java index 817bdce83f..c6189eb634 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Piece.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Piece.java @@ -31,6 +31,7 @@ public class Piece implements Comparable { public int getId() { return this.id; } public Set getPeers() { return this.peers; } public boolean addPeer(Peer peer) { return this.peers.add(peer.getPeerID()); } + public boolean removePeer(Peer peer) { return this.peers.remove(peer.getPeerID()); } public boolean isRequested() { return this.requested; } public void setRequested(boolean requested) { this.requested = requested; } } -- GitLab