net: do not manipulate potential user code
The error provided in this function could come from user code. Thus the error should not be manipulated in any way. The added properties do not seem to provide any actual value either as can not be part of the error. The `hostname` is already set on the error and adding the `host` property with the identical value does not seem right in this case. PR-URL: https://github.com/nodejs/node/pull/26751 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
parent
bdea725bdc
commit
96204c3c71
@ -971,12 +971,6 @@ function lookupAndConnect(self, options) {
|
||||
// net.createConnection() creates a net.Socket object and immediately
|
||||
// calls net.Socket.connect() on it (that's us). There are no event
|
||||
// listeners registered yet so defer the error event to the next tick.
|
||||
// TODO(BridgeAR): The error could either originate from user code or
|
||||
// by the C++ layer. The port is never the cause for the error as it is
|
||||
// not used in the lookup. We should probably just remove this.
|
||||
err.host = options.host;
|
||||
err.port = options.port;
|
||||
err.message = err.message + ' ' + options.host + ':' + options.port;
|
||||
process.nextTick(connectErrorNT, self, err);
|
||||
} else if (addressType !== 4 && addressType !== 6) {
|
||||
err = new ERR_INVALID_ADDRESS_FAMILY(addressType,
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
const common = require('../common');
|
||||
const net = require('net');
|
||||
const assert = require('assert');
|
||||
|
||||
const { addresses } = require('../common/internet');
|
||||
const {
|
||||
@ -23,8 +22,9 @@ const c = net.createConnection({
|
||||
|
||||
c.on('connect', common.mustNotCall());
|
||||
|
||||
c.on('error', common.mustCall(function(e) {
|
||||
assert.strictEqual(e.code, mockedErrorCode);
|
||||
assert.strictEqual(e.port, 0);
|
||||
assert.strictEqual(e.hostname, addresses.INVALID_HOST);
|
||||
c.on('error', common.expectsError({
|
||||
code: mockedErrorCode,
|
||||
hostname: addresses.INVALID_HOST,
|
||||
port: undefined,
|
||||
host: undefined
|
||||
}));
|
||||
|
@ -26,7 +26,6 @@
|
||||
// 'connect' and defer the handling until the 'connect' event is handled.
|
||||
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
const net = require('net');
|
||||
|
||||
const { addresses } = require('../common/internet');
|
||||
@ -42,13 +41,14 @@ const client = net.connect({
|
||||
lookup: common.mustCall(errorLookupMock())
|
||||
}, common.mustNotCall());
|
||||
|
||||
client.once('error', common.mustCall((err) => {
|
||||
assert(err);
|
||||
assert.strictEqual(err.code, err.errno);
|
||||
assert.strictEqual(err.code, mockedErrorCode);
|
||||
assert.strictEqual(err.host, err.hostname);
|
||||
assert.strictEqual(err.host, addresses.INVALID_HOST);
|
||||
assert.strictEqual(err.syscall, mockedSysCall);
|
||||
client.once('error', common.expectsError({
|
||||
code: mockedErrorCode,
|
||||
errno: mockedErrorCode,
|
||||
syscall: mockedSysCall,
|
||||
hostname: addresses.INVALID_HOST,
|
||||
message: 'getaddrinfo ENOTFOUND something.invalid',
|
||||
port: undefined,
|
||||
host: undefined
|
||||
}));
|
||||
|
||||
client.end();
|
||||
|
Loading…
x
Reference in New Issue
Block a user