From cf5a15e2da6e270fa251c8765eed6e05c2f85ecd Mon Sep 17 00:00:00 2001 From: KayleePop <34007889+KayleePop@users.noreply.github.com> Date: Mon, 25 May 2020 21:38:10 -0500 Subject: update interest when a peer's bitfield changes It happened eventually before this, but was delayed until the next piece finished downloading --- lib/torrent.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/torrent.js b/lib/torrent.js index 4ac71a0..6e98725 100644 --- a/lib/torrent.js +++ b/lib/torrent.js @@ -1048,11 +1048,13 @@ class Torrent extends EventEmitter { wire.on('bitfield', () => { updateSeedStatus() this._update() + this._updateWireInterest(wire) }) wire.on('have', () => { updateSeedStatus() this._update() + this._updateWireInterest(wire) }) wire.once('interested', () => { @@ -1084,7 +1086,9 @@ class Torrent extends EventEmitter { }) wire.bitfield(this.bitfield) // always send bitfield (required) - this._updateWireInterest(wire) // set inital interest + + // initialize interest in case bitfield message was already received before above handler was registered + this._updateWireInterest(wire) // Send PORT message to peers that support DHT if (wire.peerExtensions.dht && this.client.dht && this.client.dht.listening) { -- cgit v1.2.3