diff options
-rw-r--r-- | lib/torrent.js | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/torrent.js b/lib/torrent.js index a7253f6..f959a1c 100644 --- a/lib/torrent.js +++ b/lib/torrent.js @@ -1116,7 +1116,7 @@ Torrent.prototype._onWireWithMetadata = function (wire) { }) wire.bitfield(self.bitfield) // always send bitfield (required) - wire.interested() // always start out interested + wire.uninterested() // always start out uninterested (as per protocol) // Send PORT message to peers that support DHT if (wire.peerExtensions.dht && self.client.dht && self.client.dht.listening) { @@ -1185,8 +1185,15 @@ Torrent.prototype._updateInterest = function () { self._amInterested = !!self._selections.length self.wires.forEach(function (wire) { - // TODO: only call wire.interested if the wire has at least one piece we need - if (self._amInterested) wire.interested() + var interested = false + for (var index = 0; index < self.pieces.length; ++index) { + if (self.pieces[index] && wire.peerPieces.get(index)) { + interested = true + break + } + } + + if (interested) wire.interested() else wire.uninterested() }) |