From f573b6e73114ef5cf06165174a5a6e12272ac14a Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Tue, 10 Oct 2017 08:37:51 +0200 Subject: [PATCH 1/2] fix undefined removeAddress when using uws --- lib/socket.js | 6 +++++- test/server.js | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/socket.js b/lib/socket.js index 526707c26..177b25c69 100644 --- a/lib/socket.js +++ b/lib/socket.js @@ -31,7 +31,11 @@ function Socket (id, server, transport, req) { this.request = req; // Cache IP since it might not be in the req later - this.remoteAddress = req.connection.remoteAddress; + if (req.websocket && req.websocket._socket) { + this.remoteAddress = req.websocket._socket.remoteAddress; + } else { + this.remoteAddress = req.connection.remoteAddress; + } this.checkIntervalTimer = null; this.upgradeTimeoutTimer = null; diff --git a/test/server.js b/test/server.js index 50164b81d..6d384710a 100644 --- a/test/server.js +++ b/test/server.js @@ -2651,4 +2651,26 @@ describe('server', function () { }); }); }); + + describe('remoteAddress', function () { + it('should be defined (polling)', function (done) { + let engine = listen({ transports: ['polling'] }, port => { + eioc('ws://localhost:%d'.s(port), { transports: ['polling'] }); + engine.on('connection', socket => { + expect(socket.remoteAddress).to.be('::ffff:127.0.0.1'); + done(); + }); + }); + }); + + it('should be defined (ws)', function (done) { + let engine = listen({ transports: ['websocket'] }, port => { + eioc('ws://localhost:%d'.s(port), { transports: ['websocket'] }); + engine.on('connection', socket => { + expect(socket.remoteAddress).to.be('::ffff:127.0.0.1'); + done(); + }); + }); + }); + }); }); From c9e2906c6506d5058b9025c9cf974875d6a7d3c7 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Tue, 10 Oct 2017 08:53:08 +0200 Subject: [PATCH 2/2] var / let --- test/server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/server.js b/test/server.js index 6d384710a..59bb41d2f 100644 --- a/test/server.js +++ b/test/server.js @@ -2654,7 +2654,7 @@ describe('server', function () { describe('remoteAddress', function () { it('should be defined (polling)', function (done) { - let engine = listen({ transports: ['polling'] }, port => { + var engine = listen({ transports: ['polling'] }, port => { eioc('ws://localhost:%d'.s(port), { transports: ['polling'] }); engine.on('connection', socket => { expect(socket.remoteAddress).to.be('::ffff:127.0.0.1'); @@ -2664,7 +2664,7 @@ describe('server', function () { }); it('should be defined (ws)', function (done) { - let engine = listen({ transports: ['websocket'] }, port => { + var engine = listen({ transports: ['websocket'] }, port => { eioc('ws://localhost:%d'.s(port), { transports: ['websocket'] }); engine.on('connection', socket => { expect(socket.remoteAddress).to.be('::ffff:127.0.0.1');