diff --git a/client.js b/client.js index 035dec0..281d974 100644 --- a/client.js +++ b/client.js @@ -40,10 +40,10 @@ function Client (peerId, port, torrent, opts) { self._peerIdHex = self._peerId.toString('hex') self._peerIdBinary = self._peerId.toString('binary') - self._infoHashBuffer = Buffer.isBuffer(torrent.infoHash) + self._infoHash = typeof torrent.infoHash === 'string' ? torrent.infoHash - : new Buffer(torrent.infoHash, 'hex') - self._infoHash = self._infoHashBuffer.toString('hex') + : torrent.infoHash.toString('hex') + self._infoHashBuffer = new Buffer(self._infoHash, 'hex') self._infoHashBinary = self._infoHashBuffer.toString('binary') self.torrentLength = torrent.length diff --git a/lib/client/http-tracker.js b/lib/client/http-tracker.js index d6d6873..eddafc2 100644 --- a/lib/client/http-tracker.js +++ b/lib/client/http-tracker.js @@ -68,7 +68,7 @@ HTTPTracker.prototype.scrape = function (opts) { ? opts.infoHash.map(function (infoHash) { return infoHash.toString('binary') }) - : (opts.infoHash || self.client._infoHashBuffer).toString('binary') + : (opts.infoHash && opts.infoHash.toString('binary')) || self.client._infoHashBinary var params = { info_hash: infoHashes } diff --git a/lib/client/udp-tracker.js b/lib/client/udp-tracker.js index c9bf5fb..9075e4d 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 || self.client._infoHashBuffer).toString('hex') + : (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', {