Skip to content

Commit ad1efea

Browse files
committed
perf: reduce overhead when no X-Forwarded-For header
1 parent bbdcf0b commit ad1efea

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

HISTORY.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
unreleased
2+
==========
3+
4+
* perf: reduce overhead when no `X-Forwarded-For` header
5+
16
0.1.1 / 2017-09-10
27
==================
38

index.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,29 @@ function forwarded (req) {
3434
}
3535

3636
// simple header parsing
37-
var proxyAddrs = (req.headers['x-forwarded-for'] || '')
38-
.trim()
39-
.split(TOKEN_LIST_REGEXP)
40-
.filter(Boolean)
41-
.reverse()
37+
var proxyAddrs = parse(req.headers['x-forwarded-for'] || '')
4238
var socketAddr = req.connection.remoteAddress
4339
var addrs = [socketAddr].concat(proxyAddrs)
4440

4541
// return all addresses
4642
return addrs
4743
}
44+
45+
/**
46+
* Parse the X-Forwarded-For header.
47+
*
48+
* @param {string} header
49+
* @private
50+
*/
51+
52+
function parse (header) {
53+
if (!header) {
54+
return []
55+
}
56+
57+
return header
58+
.trim()
59+
.split(TOKEN_LIST_REGEXP)
60+
.filter(Boolean)
61+
.reverse()
62+
}

0 commit comments

Comments
 (0)