Skip to content

Commit 1f512ec

Browse files
committed
merge from upstream
2 parents 1537aad + 76a2c7a commit 1f512ec

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"@webtorrent/semantic-release-config": "1.0.8",
5757
"magnet-uri": "7.0.2",
5858
"mysql2": "^3.2.0",
59-
"semantic-release": "20.1.1",
59+
"semantic-release": "20.1.3",
6060
"standard": "*",
6161
"tape": "5.6.3",
6262
"utilitas": "^1992.4.5",

0 commit comments

Comments
 (0)