Skip to content

Commit

Permalink
simplify method to get remote address
Browse files Browse the repository at this point in the history
  • Loading branch information
dougwilson committed May 20, 2014
1 parent 39950b0 commit 8680813
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
5 changes: 5 additions & 0 deletions History.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
unreleased
==========

* simplify method to get remote address

1.1.0 / 2014-05-18
==================

Expand Down
8 changes: 3 additions & 5 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,9 @@ exports = module.exports = function logger(options) {
}

return function logger(req, res, next) {
var sock = req.socket;
req._startAt = process.hrtime();
req._startTime = new Date;
req._remoteAddress = sock.socket ? sock.socket.remoteAddress : sock.remoteAddress;
req._remoteAddress = req.connection && req.connection.remoteAddress;

function logRequest(){
res.removeListener('finish', logRequest);
Expand Down Expand Up @@ -248,9 +247,8 @@ exports.token('referrer', function(req){
exports.token('remote-addr', function(req){
if (req.ip) return req.ip;
if (req._remoteAddress) return req._remoteAddress;
var sock = req.socket;
if (sock.socket) return sock.socket.remoteAddress;
return sock.remoteAddress;
if (req.connection) return req.connection.remoteAddress;
return undefined;
});

/**
Expand Down
24 changes: 22 additions & 2 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,22 @@ describe('logger()', function () {
done()
})
})

it('should not fail if req.connection missing', function (done) {
var server = createServer({format: ':remote-addr'}, function (req) {
delete req.connection;
delete req._remoteAddress;
})

request(server)
.get('/')
.set('Connection', 'keep-alive')
.end(function (err, res) {
if (err) return done(err)
lastLogLine.should.equal(res.text + '\n')
done()
})
})
})

describe(':response-time', function () {
Expand Down Expand Up @@ -479,9 +495,13 @@ function createServer(opts, fn) {
fn(req, res)
}

if (err) res.statusCode = 500
if (err) {
res.statusCode = 500
res.end(err.message)
}

res.setHeader('X-Sent', 'true')
res.end(err ? err.message : String(req.connection.remoteAddress))
res.end((req.connection && req.connection.remoteAddress) || '-')
})
})
}

0 comments on commit 8680813

Please sign in to comment.