diff --git a/lib/client/udp-tracker.js b/lib/client/udp-tracker.js index 9075e4d..e51f5c7 100644 --- a/lib/client/udp-tracker.js +++ b/lib/client/udp-tracker.js @@ -146,7 +146,7 @@ UDPTracker.prototype._request = function (opts) { } var infoHashes = (Array.isArray(opts.infoHash) && opts.infoHash.length > 0) ? opts.infoHash.map(function (infoHash) { return infoHash.toString('hex') }) - : (opts.infoHash && opts.infoHash.toString('hex')) || self.client._infoHash + : [ (opts.infoHash && opts.infoHash.toString('hex')) || self.client._infoHash ] for (var i = 0, len = (msg.length - 8) / 12; i < len; i += 1) { self.client.emit('scrape', { diff --git a/test/scrape.js b/test/scrape.js index 79822a3..05de2d4 100644 --- a/test/scrape.js +++ b/test/scrape.js @@ -36,6 +36,7 @@ function testSingle (t, serverType) { client.on('scrape', function (data) { t.equal(data.announce, announceUrl) + t.equal(data.infoHash, parsedBitlove.infoHash) t.equal(typeof data.complete, 'number') t.equal(typeof data.incomplete, 'number') t.equal(typeof data.downloaded, 'number') @@ -60,6 +61,7 @@ function clientScrapeStatic (t, serverType) { Client.scrape(announceUrl, infoHash1, function (err, data) { t.error(err) t.equal(data.announce, announceUrl) + t.equal(data.infoHash, infoHash1) t.equal(typeof data.complete, 'number') t.equal(typeof data.incomplete, 'number') t.equal(typeof data.downloaded, 'number') @@ -84,11 +86,13 @@ function clientScrapeMulti (t, serverType) { t.error(err) t.equal(results[infoHash1].announce, announceUrl) + t.equal(results[infoHash1].infoHash, infoHash1) t.equal(typeof results[infoHash1].complete, 'number') t.equal(typeof results[infoHash1].incomplete, 'number') t.equal(typeof results[infoHash1].downloaded, 'number') t.equal(results[infoHash2].announce, announceUrl) + t.equal(results[infoHash2].infoHash, infoHash2) t.equal(typeof results[infoHash2].complete, 'number') t.equal(typeof results[infoHash2].incomplete, 'number') t.equal(typeof results[infoHash2].downloaded, 'number')