From 1de2df0c3a43941d5c44a29d29c45599411c60bb Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Tue, 24 May 2016 16:24:03 -0700 Subject: [PATCH] ignore misbehaving leeches. --- lib/bcoin/pool.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/bcoin/pool.js b/lib/bcoin/pool.js index 10184c5c..01fb78b5 100644 --- a/lib/bcoin/pool.js +++ b/lib/bcoin/pool.js @@ -429,10 +429,22 @@ Pool.prototype.listen = function listen(callback) { } this.server.on('connection', function(socket) { + var hostname; + if (self.peers.leeches.length >= self.maxLeeches) { + hostname = utils.hostname(socket.remoteAddress, socket.remotePort); + bcoin.debug('Ignoring leech: too many leeches (%s).', hostname); socket.destroy(); return; } + + if (self.isMisbehaving(socket.remoteAddress)) { + hostname = utils.hostname(socket.remoteAddress, socket.remotePort); + bcoin.debug('Ignoring misbehaving leech (%s).', hostname); + socket.destroy(); + return; + } + self._addLeech(socket); });