Initial commit for OpenECOMP SDN-C OA&M
[sdnc/oam.git] / dgbuilder / dgeflows / node_modules / express / node_modules / proxy-addr / node_modules / forwarded / index.js
1 /*!
2  * forwarded
3  * Copyright(c) 2014 Douglas Christopher Wilson
4  * MIT Licensed
5  */
6
7 /**
8  * Module exports.
9  */
10
11 module.exports = forwarded
12
13 /**
14  * Get all addresses in the request, using the `X-Forwarded-For` header.
15  *
16  * @param {Object} req
17  * @api public
18  */
19
20 function forwarded(req) {
21   if (!req) {
22     throw new TypeError('argument req is required')
23   }
24
25   // simple header parsing
26   var proxyAddrs = (req.headers['x-forwarded-for'] || '')
27     .split(/ *, */)
28     .filter(Boolean)
29     .reverse()
30   var socketAddr = req.connection.remoteAddress
31   var addrs = [socketAddr].concat(proxyAddrs)
32
33   // return all addresses
34   return addrs
35 }