mirror of
https://github.com/webtorrent/bittorrent-tracker.git
synced 2024-12-13 19:06:27 +00:00
commit
e957122dd8
11
client.js
11
client.js
@ -1,5 +1,6 @@
|
|||||||
module.exports = Client
|
module.exports = Client
|
||||||
|
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var debug = require('debug')('bittorrent-tracker')
|
var debug = require('debug')('bittorrent-tracker')
|
||||||
var EventEmitter = require('events').EventEmitter
|
var EventEmitter = require('events').EventEmitter
|
||||||
var extend = require('xtend')
|
var extend = require('xtend')
|
||||||
@ -46,13 +47,13 @@ function Client (opts) {
|
|||||||
self.peerId = typeof opts.peerId === 'string'
|
self.peerId = typeof opts.peerId === 'string'
|
||||||
? opts.peerId
|
? opts.peerId
|
||||||
: opts.peerId.toString('hex')
|
: opts.peerId.toString('hex')
|
||||||
self._peerIdBuffer = new Buffer(self.peerId, 'hex')
|
self._peerIdBuffer = Buffer.from(self.peerId, 'hex')
|
||||||
self._peerIdBinary = self._peerIdBuffer.toString('binary')
|
self._peerIdBinary = self._peerIdBuffer.toString('binary')
|
||||||
|
|
||||||
self.infoHash = typeof opts.infoHash === 'string'
|
self.infoHash = typeof opts.infoHash === 'string'
|
||||||
? opts.infoHash
|
? opts.infoHash
|
||||||
: opts.infoHash.toString('hex')
|
: opts.infoHash.toString('hex')
|
||||||
self._infoHashBuffer = new Buffer(self.infoHash, 'hex')
|
self._infoHashBuffer = Buffer.from(self.infoHash, 'hex')
|
||||||
self._infoHashBinary = self._infoHashBuffer.toString('binary')
|
self._infoHashBinary = self._infoHashBuffer.toString('binary')
|
||||||
|
|
||||||
self._port = opts.port
|
self._port = opts.port
|
||||||
@ -131,7 +132,7 @@ Client.scrape = function (opts, cb) {
|
|||||||
|
|
||||||
var clientOpts = extend(opts, {
|
var clientOpts = extend(opts, {
|
||||||
infoHash: Array.isArray(opts.infoHash) ? opts.infoHash[0] : opts.infoHash,
|
infoHash: Array.isArray(opts.infoHash) ? opts.infoHash[0] : opts.infoHash,
|
||||||
peerId: new Buffer('01234567890123456789'), // dummy value
|
peerId: Buffer.from('01234567890123456789'), // dummy value
|
||||||
port: 6881 // dummy value
|
port: 6881 // dummy value
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -156,9 +157,9 @@ Client.scrape = function (opts, cb) {
|
|||||||
|
|
||||||
opts.infoHash = Array.isArray(opts.infoHash)
|
opts.infoHash = Array.isArray(opts.infoHash)
|
||||||
? opts.infoHash.map(function (infoHash) {
|
? opts.infoHash.map(function (infoHash) {
|
||||||
return new Buffer(String(infoHash), 'hex')
|
return Buffer.from(infoHash, 'hex')
|
||||||
})
|
})
|
||||||
: new Buffer(String(opts.infoHash), 'hex')
|
: Buffer.from(opts.infoHash, 'hex')
|
||||||
client.scrape({ infoHash: opts.infoHash })
|
client.scrape({ infoHash: opts.infoHash })
|
||||||
return client
|
return client
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
module.exports = UDPTracker
|
module.exports = UDPTracker
|
||||||
|
|
||||||
var BN = require('bn.js')
|
var BN = require('bn.js')
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var compact2string = require('compact2string')
|
var compact2string = require('compact2string')
|
||||||
var debug = require('debug')('bittorrent-tracker:udp-tracker')
|
var debug = require('debug')('bittorrent-tracker:udp-tracker')
|
||||||
var dgram = require('dgram')
|
var dgram = require('dgram')
|
||||||
@ -196,7 +197,7 @@ UDPTracker.prototype._request = function (opts) {
|
|||||||
self.client._infoHashBuffer,
|
self.client._infoHashBuffer,
|
||||||
self.client._peerIdBuffer,
|
self.client._peerIdBuffer,
|
||||||
toUInt64(opts.downloaded),
|
toUInt64(opts.downloaded),
|
||||||
opts.left != null ? toUInt64(opts.left) : new Buffer('FFFFFFFFFFFFFFFF', 'hex'),
|
opts.left != null ? toUInt64(opts.left) : Buffer.from('FFFFFFFFFFFFFFFF', 'hex'),
|
||||||
toUInt64(opts.uploaded),
|
toUInt64(opts.uploaded),
|
||||||
common.toUInt32(common.EVENTS[opts.event] || 0),
|
common.toUInt32(common.EVENTS[opts.event] || 0),
|
||||||
common.toUInt32(0), // ip address (optional)
|
common.toUInt32(0), // ip address (optional)
|
||||||
@ -223,11 +224,11 @@ UDPTracker.prototype._request = function (opts) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function genTransactionId () {
|
function genTransactionId () {
|
||||||
return new Buffer(hat(32), 'hex')
|
return Buffer.from(hat(32), 'hex')
|
||||||
}
|
}
|
||||||
|
|
||||||
function toUInt16 (n) {
|
function toUInt16 (n) {
|
||||||
var buf = new Buffer(2)
|
var buf = Buffer.allocUnsafe(2)
|
||||||
buf.writeUInt16BE(n, 0)
|
buf.writeUInt16BE(n, 0)
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
@ -240,7 +241,7 @@ function toUInt64 (n) {
|
|||||||
while (bytes.length < 8) {
|
while (bytes.length < 8) {
|
||||||
bytes.unshift(0)
|
bytes.unshift(0)
|
||||||
}
|
}
|
||||||
return new Buffer(bytes)
|
return Buffer.from(bytes)
|
||||||
}
|
}
|
||||||
return Buffer.concat([common.toUInt32(0), common.toUInt32(n)])
|
return Buffer.concat([common.toUInt32(0), common.toUInt32(n)])
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
* These are separate from common.js so they can be skipped when bundling for the browser.
|
* These are separate from common.js so they can be skipped when bundling for the browser.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var querystring = require('querystring')
|
var querystring = require('querystring')
|
||||||
|
|
||||||
exports.IPV4_RE = /^[\d\.]+$/
|
exports.IPV4_RE = /^[\d\.]+$/
|
||||||
@ -26,7 +27,7 @@ exports.EVENT_NAMES = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function toUInt32 (n) {
|
function toUInt32 (n) {
|
||||||
var buf = new Buffer(4)
|
var buf = Buffer.allocUnsafe(4)
|
||||||
buf.writeUInt32BE(n, 0)
|
buf.writeUInt32BE(n, 0)
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
@ -2,17 +2,24 @@
|
|||||||
* Functions/constants needed by both the client and server.
|
* Functions/constants needed by both the client and server.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var extend = require('xtend/mutable')
|
var extend = require('xtend/mutable')
|
||||||
|
|
||||||
exports.DEFAULT_ANNOUNCE_PEERS = 50
|
exports.DEFAULT_ANNOUNCE_PEERS = 50
|
||||||
exports.MAX_ANNOUNCE_PEERS = 82
|
exports.MAX_ANNOUNCE_PEERS = 82
|
||||||
|
|
||||||
exports.binaryToHex = function (str) {
|
exports.binaryToHex = function (str) {
|
||||||
return new Buffer(str, 'binary').toString('hex')
|
if (typeof str !== 'string') {
|
||||||
|
str = String(str)
|
||||||
|
}
|
||||||
|
return Buffer.from(str, 'binary').toString('hex')
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.hexToBinary = function (str) {
|
exports.hexToBinary = function (str) {
|
||||||
return new Buffer(str, 'hex').toString('binary')
|
if (typeof str !== 'string') {
|
||||||
|
str = String(str)
|
||||||
|
}
|
||||||
|
return Buffer.from(str, 'hex').toString('binary')
|
||||||
}
|
}
|
||||||
|
|
||||||
var config = require('./common-node')
|
var config = require('./common-node')
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
"random-iterate": "^1.0.1",
|
"random-iterate": "^1.0.1",
|
||||||
"run-parallel": "^1.1.2",
|
"run-parallel": "^1.1.2",
|
||||||
"run-series": "^1.0.2",
|
"run-series": "^1.0.2",
|
||||||
|
"safe-buffer": "^5.0.0",
|
||||||
"simple-get": "^2.0.0",
|
"simple-get": "^2.0.0",
|
||||||
"simple-peer": "^6.0.0",
|
"simple-peer": "^6.0.0",
|
||||||
"simple-websocket": "^4.0.0",
|
"simple-websocket": "^4.0.0",
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
module.exports = Server
|
module.exports = Server
|
||||||
|
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var bencode = require('bencode')
|
var bencode = require('bencode')
|
||||||
var debug = require('debug')('bittorrent-tracker')
|
var debug = require('debug')('bittorrent-tracker')
|
||||||
var dgram = require('dgram')
|
var dgram = require('dgram')
|
||||||
@ -674,7 +675,7 @@ function makeUdpPacket (params) {
|
|||||||
packet = Buffer.concat([
|
packet = Buffer.concat([
|
||||||
common.toUInt32(common.ACTIONS.ERROR),
|
common.toUInt32(common.ACTIONS.ERROR),
|
||||||
common.toUInt32(params.transactionId || 0),
|
common.toUInt32(params.transactionId || 0),
|
||||||
new Buffer(params['failure reason'], 'utf8')
|
Buffer.from(String(params['failure reason']))
|
||||||
])
|
])
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var Client = require('../')
|
var Client = require('../')
|
||||||
var common = require('./common')
|
var common = require('./common')
|
||||||
var fixtures = require('webtorrent-fixtures')
|
var fixtures = require('webtorrent-fixtures')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
|
|
||||||
var peerId = new Buffer('01234567890123456789')
|
var peerId = Buffer.from('01234567890123456789')
|
||||||
|
|
||||||
function testLargeTorrent (t, serverType) {
|
function testLargeTorrent (t, serverType) {
|
||||||
t.plan(9)
|
t.plan(9)
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var Client = require('../')
|
var Client = require('../')
|
||||||
var common = require('./common')
|
var common = require('./common')
|
||||||
var fixtures = require('webtorrent-fixtures')
|
var fixtures = require('webtorrent-fixtures')
|
||||||
var magnet = require('magnet-uri')
|
var magnet = require('magnet-uri')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
|
|
||||||
var peerId = new Buffer('01234567890123456789')
|
var peerId = Buffer.from('01234567890123456789')
|
||||||
|
|
||||||
function testMagnet (t, serverType) {
|
function testMagnet (t, serverType) {
|
||||||
t.plan(9)
|
t.plan(9)
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var Client = require('../')
|
var Client = require('../')
|
||||||
var common = require('./common')
|
var common = require('./common')
|
||||||
var fixtures = require('webtorrent-fixtures')
|
var fixtures = require('webtorrent-fixtures')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
|
|
||||||
var peerId = new Buffer('01234567890123456789')
|
var peerId = Buffer.from('01234567890123456789')
|
||||||
var port = 6681
|
var port = 6681
|
||||||
|
|
||||||
test('ensure client.destroy() callback is called with re-used websockets in socketPool', function (t) {
|
test('ensure client.destroy() callback is called with re-used websockets in socketPool', function (t) {
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var Client = require('../')
|
var Client = require('../')
|
||||||
var common = require('./common')
|
var common = require('./common')
|
||||||
var fixtures = require('webtorrent-fixtures')
|
var fixtures = require('webtorrent-fixtures')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
|
|
||||||
var peerId1 = new Buffer('01234567890123456789')
|
var peerId1 = Buffer.from('01234567890123456789')
|
||||||
var peerId2 = new Buffer('12345678901234567890')
|
var peerId2 = Buffer.from('12345678901234567890')
|
||||||
var peerId3 = new Buffer('23456789012345678901')
|
var peerId3 = Buffer.from('23456789012345678901')
|
||||||
var port = 6881
|
var port = 6881
|
||||||
|
|
||||||
function testClientStart (t, serverType) {
|
function testClientStart (t, serverType) {
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var Client = require('../')
|
var Client = require('../')
|
||||||
var common = require('./common')
|
var common = require('./common')
|
||||||
var fixtures = require('webtorrent-fixtures')
|
var fixtures = require('webtorrent-fixtures')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
|
|
||||||
var peerId = new Buffer('01234567890123456789')
|
var peerId = Buffer.from('01234567890123456789')
|
||||||
|
|
||||||
function testFilterOption (t, serverType) {
|
function testFilterOption (t, serverType) {
|
||||||
t.plan(8)
|
t.plan(8)
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var common = require('../lib/common')
|
var common = require('../lib/common')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
|
|
||||||
// https://github.com/feross/webtorrent/issues/196
|
// https://github.com/feross/webtorrent/issues/196
|
||||||
test('encode special chars +* in http tracker urls', function (t) {
|
test('encode special chars +* in http tracker urls', function (t) {
|
||||||
var q = {
|
var q = {
|
||||||
info_hash: new Buffer('a2a15537542b22925ad10486bf7a8b2a9c42f0d1', 'hex').toString('binary')
|
info_hash: Buffer.from('a2a15537542b22925ad10486bf7a8b2a9c42f0d1', 'hex').toString('binary')
|
||||||
}
|
}
|
||||||
var encoded = 'info_hash=%A2%A1U7T%2B%22%92Z%D1%04%86%BFz%8B%2A%9CB%F0%D1'
|
var encoded = 'info_hash=%A2%A1U7T%2B%22%92Z%D1%04%86%BFz%8B%2A%9CB%F0%D1'
|
||||||
t.equal(common.querystringStringify(q), encoded)
|
t.equal(common.querystringStringify(q), encoded)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
var bencode = require('bencode')
|
var bencode = require('bencode')
|
||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var Client = require('../')
|
var Client = require('../')
|
||||||
var common = require('./common')
|
var common = require('./common')
|
||||||
var commonLib = require('../lib/common')
|
var commonLib = require('../lib/common')
|
||||||
@ -7,7 +8,7 @@ var fixtures = require('webtorrent-fixtures')
|
|||||||
var get = require('simple-get')
|
var get = require('simple-get')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
|
|
||||||
var peerId = new Buffer('01234567890123456789')
|
var peerId = Buffer.from('01234567890123456789')
|
||||||
|
|
||||||
function testSingle (t, serverType) {
|
function testSingle (t, serverType) {
|
||||||
commonTest.createServer(t, serverType, function (server, announceUrl) {
|
commonTest.createServer(t, serverType, function (server, announceUrl) {
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
var Buffer = require('safe-buffer').Buffer
|
||||||
var Client = require('../')
|
var Client = require('../')
|
||||||
var common = require('./common')
|
var common = require('./common')
|
||||||
var test = require('tape')
|
var test = require('tape')
|
||||||
@ -9,8 +10,8 @@ var test = require('tape')
|
|||||||
// })
|
// })
|
||||||
|
|
||||||
var infoHash = '4cb67059ed6bd08362da625b3ae77f6f4a075705'
|
var infoHash = '4cb67059ed6bd08362da625b3ae77f6f4a075705'
|
||||||
var peerId = new Buffer('01234567890123456789')
|
var peerId = Buffer.from('01234567890123456789')
|
||||||
var peerId2 = new Buffer('12345678901234567890')
|
var peerId2 = Buffer.from('12345678901234567890')
|
||||||
|
|
||||||
function serverTest (t, serverType, serverFamily) {
|
function serverTest (t, serverType, serverFamily) {
|
||||||
t.plan(30)
|
t.plan(30)
|
||||||
|
Loading…
Reference in New Issue
Block a user