diff options
author | Feross Aboukhadijeh <feross@feross.org> | 2016-01-10 19:54:30 +0300 |
---|---|---|
committer | Feross Aboukhadijeh <feross@feross.org> | 2016-01-11 02:09:00 +0300 |
commit | d8e32f18d3c2231778f4599901ad0e44f187c777 (patch) | |
tree | 26cb1dc0b1d930c39faead4775526f414e2dae2f /lib | |
parent | dd464fd074f94110ba0589c6624d72c391b6bd91 (diff) |
Check blocklist for WebRTC peers
Fix #566
Diffstat (limited to 'lib')
-rw-r--r-- | lib/torrent.js | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/torrent.js b/lib/torrent.js index de859a2..f7cc21b 100644 --- a/lib/torrent.js +++ b/lib/torrent.js @@ -455,17 +455,19 @@ Torrent.prototype.addPeer = function (peer) { self.emit('peer', peer) } - // TODO: extract IP address from peer object and check blocklist - if (typeof peer === 'string' && self.client.blocked && - self.client.blocked.contains(addrToIPPort(peer)[0])) { - self.numBlockedPeers += 1 - self.emit('blockedPeer', peer) - return false - } else { - if (self.swarm) addPeer() - else self.once('listening', addPeer) - return true + if (self.client.blocked) { + var addr = typeof peer === 'string' ? peer : peer.remoteAddress + + if (addr && self.client.blocked.contains(addrToIPPort(addr)[0])) { + self.numBlockedPeers += 1 + self.emit('blockedPeer', peer) + return false + } } + + if (self.swarm) addPeer() + else self.once('listening', addPeer) + return true } /** |