Skip to content

Commit 79f064f

Browse files
committed
net: properly export remoteAddress to user land
Fixes failing test: test/simple/test-net-remote-address-port.js
1 parent f52a8db commit 79f064f

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

lib/net_legacy.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,12 @@ Socket.prototype.connect = function() {
730730
if (err) {
731731
self.emit('error', err);
732732
} else {
733+
addressType = addressType || 4;
734+
735+
// node_net.cc handles null host names graciously but user land
736+
// expects remoteAddress to have a meaningful value
737+
ip = ip || (addressType === 4 ? '127.0.0.1' : '0:0:0:0:0:0:0:1');
738+
733739
timers.active(self);
734740
self.type = addressType == 4 ? 'tcp4' : 'tcp6';
735741
self.fd = socket(self.type);

lib/net_uv.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ function initSocketHandle(self) {
6969
if (self._handle) {
7070
self._handle.socket = self;
7171
self._handle.onread = onread;
72+
73+
var sockname = self._handle.getsockname();
74+
self.remoteAddress = sockname.address;
75+
self.remotePort = sockname.port;
76+
// also export sockname.family?
7277
}
7378
}
7479

@@ -464,7 +469,13 @@ Socket.prototype.connect = function(port /* [host], [cb] */) {
464469
} else {
465470
timers.active(self);
466471

467-
connect(self, ip || '127.0.0.1', port, ip ? addressType : 4);
472+
addressType = addressType || 4;
473+
474+
// node_net.cc handles null host names graciously but user land
475+
// expects remoteAddress to have a meaningful value
476+
ip = ip || (addressType === 4 ? '127.0.0.1' : '0:0:0:0:0:0:0:1');
477+
478+
connect(self, ip, port, addressType);
468479
}
469480
});
470481

test/simple/test-net-remote-address-port.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ var assert = require('assert');
33

44
var net = require('net');
55

6-
var conns = 0;
6+
var conns = 0, conns_closed = 0;
77

88
var server = net.createServer(function(socket) {
99
conns++;
1010
assert.equal('127.0.0.1', socket.remoteAddress);
1111
socket.on('end', function() {
12-
server.close();
12+
if (++conns_closed == 2) server.close();
1313
});
1414
});
1515

0 commit comments

Comments
 (0)