Skip to content

Commit

Permalink
req.ip
Browse files Browse the repository at this point in the history
  • Loading branch information
aichholzer committed May 16, 2019
1 parent 14189fe commit 36a6737
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions packages/rayo/index.js
Expand Up @@ -4,6 +4,14 @@ const { parse } = require('querystring');
const { storm } = require('@rayo/storm');
const Bridge = require('./bridge');

const ip = (req) => {
const { headers, connection = { socket: {} }, socket = {} } = req;
const remoteAddress = connection.remoteAddress || socket.remoteAddress;
const socketAddress = connection.socket.remoteAddress || null;

return headers['x-forwarded-for'] || remoteAddress || socketAddress;
};

const end = (req, res, status, error) => {
res.statusCode = status;
res.setHeader('Content-Length', error.length);
Expand Down Expand Up @@ -56,9 +64,18 @@ class Rayo extends Bridge {
: end(req, res, 404, `${req.method} ${parsedUrl.pathname} is undefined.`);
}

const { headers, connection, socket } = req;
req.ip =
headers['x-forwarded-for'] ||
connection.remoteAddress ||
socket.remoteAddress ||
(connection.socket ? connection.socket.remoteAddress : null);

req.ip = ip();
req.params = route.params;
req.pathname = parsedUrl.pathname;
req.query = parse(parsedUrl.query);

return this.step(req, res, route.stack);
}

Expand Down

0 comments on commit 36a6737

Please sign in to comment.