diff options
author | Feross Aboukhadijeh <feross@feross.org> | 2016-02-19 05:20:41 +0300 |
---|---|---|
committer | Feross Aboukhadijeh <feross@feross.org> | 2016-02-19 05:20:41 +0300 |
commit | 95454e147c1748da8b60a2921f084c927ea7ae3e (patch) | |
tree | 7fdff97605b9b79a94e93c669c7877ecc1931a6c | |
parent | 42f94e89b66f39d5f0079d7d22f902f4b2013ad3 (diff) |
BREAKING: don't emit 'peer' event for invalid peers
-rw-r--r-- | lib/torrent.js | 9 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | test/node/blocklist-tracker.js | 2 |
3 files changed, 9 insertions, 4 deletions
diff --git a/lib/torrent.js b/lib/torrent.js index c374741..0a1a03a 100644 --- a/lib/torrent.js +++ b/lib/torrent.js @@ -456,8 +456,12 @@ Torrent.prototype.addPeer = function (peer) { if (self.destroyed) throw new Error('torrent is destroyed') function addPeer () { - self.swarm.addPeer(peer) - self.emit('peer', peer) + var wasAdded = self.swarm.addPeer(peer) + if (wasAdded) { + self.emit('peer', peer) + } else { + self.emit('invalidPeer', peer) + } } if (self.client.blocked) { @@ -467,6 +471,7 @@ Torrent.prototype.addPeer = function (peer) { try { parts = addrToIPPort(peer) } catch (e) { + self.emit('invalidPeer', peer) return false } host = parts[0] diff --git a/package.json b/package.json index dbf44b1..10d7906 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "addr-to-ip-port": "^1.0.1", "bitfield": "^1.0.2", "bittorrent-dht": "^6.0.1", - "bittorrent-swarm": "^7.0.0", + "bittorrent-swarm": "^7.1.0", "chunk-store-stream": "^2.0.0", "clivas": "^0.2.0", "cpus": "^1.0.0", diff --git a/test/node/blocklist-tracker.js b/test/node/blocklist-tracker.js index 90ac3be..cac9468 100644 --- a/test/node/blocklist-tracker.js +++ b/test/node/blocklist-tracker.js @@ -41,7 +41,7 @@ test('blocklist blocks peers discovered via tracker', function (t) { var torrent1 = client1.add(parsedTorrent) - torrent1.on('peer', function () { + torrent1.on('invalidPeer', function () { t.pass('client1 found itself') cb(null) }) |