Skip to content

Commit 511a22c

Browse files
authored
Merge branch 'webtorrent:master' into master
2 parents 7f07ec8 + d31e8b6 commit 511a22c

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

lib/server/parse-http.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,17 @@ function parseHttpRequest (req, opts) {
3535
common.MAX_ANNOUNCE_PEERS
3636
)
3737

38-
params.ip = opts.trustProxy
39-
? req.headers['x-forwarded-for'] || req.connection.remoteAddress
40-
: req.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4
38+
if (opts.trustProxy) {
39+
if (req.headers['x-forwarded-for']) {
40+
const [realIp] = req.headers['x-forwarded-for'].split(',')
41+
params.ip = realIp.trim()
42+
} else {
43+
params.ip = req.connection.remoteAddress
44+
}
45+
} else {
46+
params.ip = req.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4
47+
}
48+
4149
params.addr = `${common.IPV6_RE.test(params.ip) ? `[${params.ip}]` : params.ip}:${params.port}`
4250

4351
params.headers = req.headers

lib/server/parse-websocket.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,17 @@ function parseWebSocketRequest (socket, opts, params) {
5555
// On first parse, save important data from `socket.upgradeReq` and delete it
5656
// to reduce memory usage.
5757
if (socket.upgradeReq) {
58-
socket.ip = opts.trustProxy
59-
? socket.upgradeReq.headers['x-forwarded-for'] || socket.upgradeReq.connection.remoteAddress
60-
: socket.upgradeReq.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4
58+
if (opts.trustProxy) {
59+
if (socket.upgradeReq.headers['x-forwarded-for']) {
60+
const [realIp] = socket.upgradeReq.headers['x-forwarded-for'].split(',')
61+
socket.ip = realIp.trim()
62+
} else {
63+
socket.ip = socket.upgradeReq.connection.remoteAddress
64+
}
65+
} else {
66+
socket.ip = socket.upgradeReq.connection.remoteAddress.replace(common.REMOVE_IPV4_MAPPED_IPV6_RE, '') // force ipv4
67+
}
68+
6169
socket.port = socket.upgradeReq.connection.remotePort
6270
if (socket.port) {
6371
socket.addr = `${common.IPV6_RE.test(socket.ip) ? `[${socket.ip}]` : socket.ip}:${socket.port}`

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
"devDependencies": {
5555
"@mapbox/node-pre-gyp": "1.0.10",
5656
"@webtorrent/semantic-release-config": "1.0.8",
57-
"magnet-uri": "7.0.2",
58-
"semantic-release": "20.1.1",
57+
"magnet-uri": "7.0.3",
58+
"semantic-release": "20.1.3",
5959
"standard": "*",
6060
"tape": "5.6.3",
6161
"webtorrent-fixtures": "2.0.2",

0 commit comments

Comments
 (0)