From c555671bde4c80d8882dc48a91463cfc0da57033 Mon Sep 17 00:00:00 2001 From: Braydon Fuller Date: Mon, 23 Mar 2015 15:07:55 -0400 Subject: [PATCH] fixed bug with incoming connections not having a port on addr --- lib/pool.js | 1 + test/pool.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lib/pool.js b/lib/pool.js index 08ac3cd..65462e9 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -366,6 +366,7 @@ Pool.prototype.listen = function() { } else { addr.ip.v4 = socket.remoteAddress; } + addr.port = socket.remotePort; addr = self._addAddr(addr); self._addConnectedPeer(socket, addr); diff --git a/test/pool.js b/test/pool.js index 011fd22..ac29589 100644 --- a/test/pool.js +++ b/test/pool.js @@ -486,6 +486,28 @@ describe('Pool', function() { pool.listen(); }); + it('include port for addr on incoming connections', function(done) { + var port = 12345; + sinon.stub(net, 'createServer', function(callback) { + callback({ + remoteAddress: '127.0.0.1', + remotePort: port + }); + return { + listen: sinon.stub() + }; + }); + var pool = new Pool({network: Networks.livenet, maxSize: 1}); + pool._addAddr = function(addr) { + should.exist(addr.port); + addr.port.should.equal(port); + net.createServer.restore(); + done(); + }; + pool._addConnectedPeer = sinon.stub(); + pool.listen(); + }); + it('should handle an ipv4 connection', function(done) { var ipv4 = '127.0.0.1'; sinon.stub(net, 'createServer', function(callback) {