From e898ef45f66a725e34da3a921a909c252cb4bfd7 Mon Sep 17 00:00:00 2001 From: Theadd Date: Wed, 24 Sep 2014 18:03:30 +0200 Subject: [PATCH] handle .* IP/PORTs (6 bytes) error --- client.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/client.js b/client.js index 1416d47..bf3ba61 100644 --- a/client.js +++ b/client.js @@ -352,9 +352,13 @@ Tracker.prototype._requestUdp = function (requestUrl, opts) { incomplete: msg.readUInt32BE(12) }) - compact2string.multi(msg.slice(20)).forEach(function (addr) { - self.client.emit('peer', addr) - }) + try { + compact2string.multi(msg.slice(20)).forEach(function (addr) { + self.client.emit('peer', addr) + }) + } catch (err) { + return self.client.emit('error', err) + } break case 2: // scrape @@ -478,9 +482,13 @@ Tracker.prototype._handleResponse = function (requestUrl, data) { if (Buffer.isBuffer(data.peers)) { // tracker returned compact response - compact2string.multi(data.peers).forEach(function (addr) { - self.client.emit('peer', addr) - }) + try { + compact2string.multi(data.peers).forEach(function (addr) { + self.client.emit('peer', addr) + }) + } catch (err) { + return self.client.emit('error', err) + } } else if (Array.isArray(data.peers)) { // tracker returned normal response data.peers.forEach(function (peer) {