From bf4481c09a1b46337088cfdc14172592361085df Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Mar 2023 05:43:04 +0000 Subject: [PATCH 1/7] chore(deps): update dependency semantic-release to v20.1.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4d0f3abb..7c6b2fb5 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@mapbox/node-pre-gyp": "1.0.10", "@webtorrent/semantic-release-config": "1.0.8", "magnet-uri": "7.0.2", - "semantic-release": "20.1.0", + "semantic-release": "20.1.1", "standard": "*", "tape": "5.6.3", "webtorrent-fixtures": "2.0.2", From bf8831c64a0f307bbb486d873dfad2011965123e Mon Sep 17 00:00:00 2001 From: Tom Snelling Date: Fri, 17 Mar 2023 01:07:39 +0000 Subject: [PATCH 2/7] adds handling for x-forwarded-for comma-separated syntax (#452) --- lib/server/parse-http.js | 14 +++++++++++--- lib/server/parse-websocket.js | 14 +++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/server/parse-http.js b/lib/server/parse-http.js index 5847251f..1e6fe315 100644 --- a/lib/server/parse-http.js +++ b/lib/server/parse-http.js @@ -33,9 +33,17 @@ function parseHttpRequest (req, opts) { common.MAX_ANNOUNCE_PEERS ) - params.ip = opts.trustProxy - ? req.headers['x-forwarded-for'] || req.connection.remoteAddress - : req.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4 + if (opts.trustProxy) { + if (req.headers['x-forwarded-for']) { + const [realIp] = req.headers['x-forwarded-for'].split(',') + params.ip = realIp.trim() + } else { + params.ip = req.connection.remoteAddress + } + } else { + params.ip = req.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4 + } + params.addr = `${common.IPV6_RE.test(params.ip) ? `[${params.ip}]` : params.ip}:${params.port}` params.headers = req.headers diff --git a/lib/server/parse-websocket.js b/lib/server/parse-websocket.js index 5aeba9e1..16fea56f 100644 --- a/lib/server/parse-websocket.js +++ b/lib/server/parse-websocket.js @@ -55,9 +55,17 @@ function parseWebSocketRequest (socket, opts, params) { // On first parse, save important data from `socket.upgradeReq` and delete it // to reduce memory usage. if (socket.upgradeReq) { - socket.ip = opts.trustProxy - ? socket.upgradeReq.headers['x-forwarded-for'] || socket.upgradeReq.connection.remoteAddress - : socket.upgradeReq.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4 + if (opts.trustProxy) { + if (socket.upgradeReq.headers['x-forwarded-for']) { + const [realIp] = socket.upgradeReq.headers['x-forwarded-for'].split(',') + socket.ip = realIp.trim() + } else { + socket.ip = socket.upgradeReq.connection.remoteAddress + } + } else { + socket.ip = socket.upgradeReq.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4 + } + socket.port = socket.upgradeReq.connection.remotePort if (socket.port) { socket.addr = `${common.IPV6_RE.test(socket.ip) ? `[${socket.ip}]` : socket.ip}:${socket.port}` From 76a2c7a978ea3660626da5d9184dee1eff50650d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 18 Mar 2023 20:39:04 +0000 Subject: [PATCH 3/7] chore(deps): update dependency semantic-release to v20.1.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7c6b2fb5..9705a62c 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@mapbox/node-pre-gyp": "1.0.10", "@webtorrent/semantic-release-config": "1.0.8", "magnet-uri": "7.0.2", - "semantic-release": "20.1.1", + "semantic-release": "20.1.3", "standard": "*", "tape": "5.6.3", "webtorrent-fixtures": "2.0.2", From d31e8b6561174cadf4e10725b4fb1cf9af64bd7c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 2 Apr 2023 20:43:54 +0000 Subject: [PATCH 4/7] chore(deps): update dependency magnet-uri to v7.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9705a62c..f82db808 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "devDependencies": { "@mapbox/node-pre-gyp": "1.0.10", "@webtorrent/semantic-release-config": "1.0.8", - "magnet-uri": "7.0.2", + "magnet-uri": "7.0.3", "semantic-release": "20.1.3", "standard": "*", "tape": "5.6.3", From fc7c2324e8117b5cd7065a52bdcde61ab0399ab1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 May 2023 11:04:24 +0000 Subject: [PATCH 5/7] chore(deps): update dependency @webtorrent/semantic-release-config to v1.0.9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f82db808..0b64a1e2 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ }, "devDependencies": { "@mapbox/node-pre-gyp": "1.0.10", - "@webtorrent/semantic-release-config": "1.0.8", + "@webtorrent/semantic-release-config": "1.0.9", "magnet-uri": "7.0.3", "semantic-release": "20.1.3", "standard": "*", From 3f01c29122efd726d805673da82f43ce5592b793 Mon Sep 17 00:00:00 2001 From: Cas <6506529+ThaUnknown@users.noreply.github.com> Date: Thu, 25 May 2023 19:18:36 +0200 Subject: [PATCH 6/7] perf: replace simple websocket with maintained one (#464) --- lib/client/websocket-tracker.js | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/client/websocket-tracker.js b/lib/client/websocket-tracker.js index 3799510a..75892ec5 100644 --- a/lib/client/websocket-tracker.js +++ b/lib/client/websocket-tracker.js @@ -2,7 +2,7 @@ import clone from 'clone' import Debug from 'debug' import Peer from 'simple-peer' import randombytes from 'randombytes' -import Socket from 'simple-websocket' +import Socket from '@thaunknown/simple-websocket' import Socks from 'socks' import common from '../common.js' @@ -214,7 +214,7 @@ class WebSocketTracker extends Tracker { this.expectingResponse = false try { - data = JSON.parse(data) + data = JSON.parse(Buffer.from(data)) } catch (err) { this.client.emit('warning', new Error('Invalid tracker response')) return diff --git a/package.json b/package.json index 0b64a1e2..c00c1506 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ }, "type": "module", "dependencies": { + "@thaunknown/simple-websocket": "^9.1.0", "bencode": "^3.0.3", "bittorrent-peerid": "^1.3.3", "bn.js": "^5.2.0", @@ -45,7 +46,6 @@ "run-series": "^1.1.9", "simple-get": "^4.0.0", "simple-peer": "^9.11.0", - "simple-websocket": "^9.1.0", "socks": "^2.0.0", "string2compact": "^2.0.0", "unordered-array-remove": "^1.0.2", From 6864ef9a24c3d9a4655a1cc25fbae1d47a374e75 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 25 May 2023 17:21:37 +0000 Subject: [PATCH 7/7] chore(release): 10.0.3 ## [10.0.3](https://github.com/webtorrent/bittorrent-tracker/compare/v10.0.2...v10.0.3) (2023-05-25) ### Performance Improvements * replace simple websocket with maintained one ([#464](https://github.com/webtorrent/bittorrent-tracker/issues/464)) ([3f01c29](https://github.com/webtorrent/bittorrent-tracker/commit/3f01c29122efd726d805673da82f43ce5592b793)) --- AUTHORS.md | 1 + CHANGELOG.md | 7 +++++++ package.json | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/AUTHORS.md b/AUTHORS.md index e6d57d90..138681d6 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -62,5 +62,6 @@ - Lookis (lookisliu@gmail.com) - Paul Sharypov (pavloniym@gmail.com) - Cas (6506529+ThaUnknown@users.noreply.github.com) +- Tom Snelling (tomsnelling8@gmail.com) #### Generated by tools/update-authors.sh. diff --git a/CHANGELOG.md b/CHANGELOG.md index 4150d276..dce176eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [10.0.3](https://github.com/webtorrent/bittorrent-tracker/compare/v10.0.2...v10.0.3) (2023-05-25) + + +### Performance Improvements + +* replace simple websocket with maintained one ([#464](https://github.com/webtorrent/bittorrent-tracker/issues/464)) ([3f01c29](https://github.com/webtorrent/bittorrent-tracker/commit/3f01c29122efd726d805673da82f43ce5592b793)) + ## [10.0.2](https://github.com/webtorrent/bittorrent-tracker/compare/v10.0.1...v10.0.2) (2023-02-01) diff --git a/package.json b/package.json index c00c1506..04b59cf3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "bittorrent-tracker", "description": "Simple, robust, BitTorrent tracker (client & server) implementation", - "version": "10.0.2", + "version": "10.0.3", "author": { "name": "WebTorrent LLC", "email": "feross@webtorrent.io",