diff options
author | grant-kun <[email protected]> | 2022-09-26 11:32:15 -0500 |
---|---|---|
committer | grant-kun <[email protected]> | 2022-09-26 11:32:15 -0500 |
commit | fb1a557749b7b83e9e732df7c65cdb3f17d0400a (patch) | |
tree | 681d83ad203c94e322aa84a7e2e65d5cc679370e /node_modules/forwarded/index.js | |
parent | 34e9facde87cac19e7d68f6ffce28546d92c9979 (diff) | |
parent | 4b237cd7f3d9ebffdfc60d987c4df3c2595c3b7c (diff) |
Merge branch 'main' of https://github.com/squiresgrant/kanna-site
Diffstat (limited to 'node_modules/forwarded/index.js')
-rw-r--r-- | node_modules/forwarded/index.js | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/node_modules/forwarded/index.js b/node_modules/forwarded/index.js deleted file mode 100644 index b2b6bdd..0000000 --- a/node_modules/forwarded/index.js +++ /dev/null @@ -1,90 +0,0 @@ -/*! - * forwarded - * Copyright(c) 2014-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = forwarded - -/** - * Get all addresses in the request, using the `X-Forwarded-For` header. - * - * @param {object} req - * @return {array} - * @public - */ - -function forwarded (req) { - if (!req) { - throw new TypeError('argument req is required') - } - - // simple header parsing - var proxyAddrs = parse(req.headers['x-forwarded-for'] || '') - var socketAddr = getSocketAddr(req) - var addrs = [socketAddr].concat(proxyAddrs) - - // return all addresses - return addrs -} - -/** - * Get the socket address for a request. - * - * @param {object} req - * @return {string} - * @private - */ - -function getSocketAddr (req) { - return req.socket - ? req.socket.remoteAddress - : req.connection.remoteAddress -} - -/** - * Parse the X-Forwarded-For header. - * - * @param {string} header - * @private - */ - -function parse (header) { - var end = header.length - var list = [] - var start = header.length - - // gather addresses, backwards - for (var i = header.length - 1; i >= 0; i--) { - switch (header.charCodeAt(i)) { - case 0x20: /* */ - if (start === end) { - start = end = i - } - break - case 0x2c: /* , */ - if (start !== end) { - list.push(header.substring(start, end)) - } - start = end = i - break - default: - start = i - break - } - } - - // final address - if (start !== end) { - list.push(header.substring(start, end)) - } - - return list -} |