From ce8ea41f276ddb1251f26107e968ec33cf37966d Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Mon, 12 Apr 2021 15:54:01 -0700 Subject: [PATCH 1/4] Lower the max number of WebRTC peers in an announce to 5 --- lib/client/websocket-tracker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/client/websocket-tracker.js b/lib/client/websocket-tracker.js index 907b5d37..6e71e765 100644 --- a/lib/client/websocket-tracker.js +++ b/lib/client/websocket-tracker.js @@ -56,7 +56,7 @@ class WebSocketTracker extends Tracker { this._send(params) } else { // Limit the number of offers that are generated, since it can be slow - const numwant = Math.min(opts.numwant, 10) + const numwant = Math.min(opts.numwant, 5) this._generateOffers(numwant, offers => { params.numwant = numwant From dd02cddcb80e52d920f8ac889bbfc957020d3ab9 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Mon, 12 Apr 2021 16:13:35 -0700 Subject: [PATCH 2/4] ensure that 'peer' is emitted before 'connect' event fires This is just a defensive code change to ensure that if signal() were somehow able to cause the peer to synchronously emit the 'connect' event that we won't cause the 'error' listener to be unregistered before 'peer' is emitted and the user has a chance to register their own 'error' listener --- lib/client/websocket-tracker.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/client/websocket-tracker.js b/lib/client/websocket-tracker.js index 6e71e765..815b0341 100644 --- a/lib/client/websocket-tracker.js +++ b/lib/client/websocket-tracker.js @@ -278,8 +278,8 @@ class WebSocketTracker extends Tracker { if (this._trackerId) params.trackerid = this._trackerId this._send(params) }) - peer.signal(data.offer) this.client.emit('peer', peer) + peer.signal(data.offer) } if (data.answer && data.peer_id) { @@ -287,8 +287,8 @@ class WebSocketTracker extends Tracker { peer = this.peers[offerId] if (peer) { peer.id = common.binaryToHex(data.peer_id) - peer.signal(data.answer) this.client.emit('peer', peer) + peer.signal(data.answer) clearTimeout(peer.trackerTimeout) peer.trackerTimeout = null From 77d409ac2026bd19fbe473cce6bec8a8495dc2b6 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Mon, 12 Apr 2021 16:14:42 -0700 Subject: [PATCH 3/4] 9.17.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 213073a3..30507662 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "bittorrent-tracker", "description": "Simple, robust, BitTorrent tracker (client & server) implementation", - "version": "9.16.1", + "version": "9.17.0", "author": { "name": "WebTorrent LLC", "email": "feross@webtorrent.io", From 2a12b752048d88452d91cd5fa4d8f03ac9131074 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Mon, 12 Apr 2021 16:14:42 -0700 Subject: [PATCH 4/4] package metadata --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 910c8cfd..822d21cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: ${{ runner.node }} + node-version: ${{ matrix.node }} - run: npm install - run: npm run build --if-present - run: npm test