req.oncomplete = afterConnect;
req.address = address;
req.port = port;
+ req.localAddress = localAddress;
+ req.localPort = localPort;
if (addressType === 4)
err = self._handle.connect(req, address, port);
self._connecting = false;
var details;
if (req.localAddress && req.localPort) {
- ex.localAddress = req.localAddress;
- ex.localPort = req.localPort;
- details = ex.localAddress + ':' + ex.localPort;
+ details = req.localAddress + ':' + req.localPort;
}
var ex = exceptionWithHostPort(status,
'connect',
req.address,
req.port,
details);
+ if (details) {
+ ex.localAddress = req.localAddress;
+ ex.localPort = req.localPort;
+ }
self._destroy(ex);
}
}
--- /dev/null
+'use strict';
+const common = require('../common');
+const assert = require('assert');
+const net = require('net');
+
+var client = net.connect({
+ port: common.PORT + 1,
+ localPort: common.PORT,
+ localAddress: common.localhostIPv4
+});
+
+client.on('error', common.mustCall(function onError(err) {
+ assert.equal(err.localPort, common.PORT);
+ assert.equal(err.localAddress, common.localhostIPv4);
+}));