Skip to content

Commit c5bf770

Browse files
committed
fix: fixed broken forwarded header handling
1 parent 6a84504 commit c5bf770

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,23 +270,23 @@ function getRequestHeaders (req) {
270270
const fwd = {
271271
by: req.headers[HTTP2_HEADER_AUTHORITY] || req.headers[HTTP2_HEADER_HOST],
272272
proto: req.socket.encrypted ? 'https' : 'http',
273-
for: [ req.socket.remoteAddress ]
273+
for: `for=${req.socket.remoteAddress}`
274274
}
275275

276276
if (req.headers[HTTP2_HEADER_FORWARDED]) {
277-
const expr = /for=\s*([^\s]+)/i
277+
const expr = /for=\s*([^\s]+)/ig
278278
while (true) {
279279
const m = expr.exec(req.headers[HTTP2_HEADER_FORWARDED])
280280
if (!m) {
281281
break
282282
}
283-
fwd.for.push(m)
283+
fwd.for += `; ${m[1]}`
284284
}
285285
}
286286

287287
headers[HTTP2_HEADER_FORWARDED] = [
288288
`by=${fwd.by}`,
289-
fwd.for.map(address => `for=${address}`).join('; '),
289+
fwd.for,
290290
fwd.host && `host=${fwd.host}`,
291291
`proto=${fwd.proto}`
292292
].filter(x => x).join('; ')

0 commit comments

Comments
 (0)