net.Server.address() returns IPV4/IPV6 inconsistently. To reproduce the problem, run the following test with v0.10.28 and v0.11.13.
var net = require('net');
function createServer(name) {
var server = new net.Server();
server.on('listening', function() {
console.log("%s %j", name, server.address());
server.close();
});
return server;
}
createServer('1').listen(0);
createServer('2').listen(0, null);
createServer('3').listen(0, undefined);
createServer('4').listen(3000);
createServer('5').listen(3000, null);
Result from v0.10.28:
1 {"address":"0.0.0.0","family":"IPv4","port":64208}
3 {"address":"0.0.0.0","family":"IPv4","port":64209}
4 {"address":"0.0.0.0","family":"IPv4","port":3000}
6 {"address":"0.0.0.0","family":"IPv4","port":64210}
2 {"address":"0.0.0.0","family":"IPv4","port":64211}
5 {"address":"0.0.0.0","family":"IPv4","port":3000}
Result from v0.11.13:
1 {"address":"0.0.0.0","family":"IPv4","port":64121}
3 {"address":"0.0.0.0","family":"IPv4","port":64122}
4 {"address":"::","family":"IPv6","port":3000}
6 {"address":"0.0.0.0","family":"IPv4","port":64123}
2 {"address":"0.0.0.0","family":"IPv4","port":64124}
5 {"address":"::","family":"IPv6","port":3000}
Is this a bug or by design?