Skip to content

Commit 571832b

Browse files
committed
internal: improve formatting for network errors with IPv6 addresses and ports
1 parent 0d7e4b1 commit 571832b

4 files changed

Lines changed: 15 additions & 14 deletions

File tree

lib/internal/errors.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,8 @@ class UVExceptionWithHostPort extends Error {
698698
let details = '';
699699

700700
if (port && port > 0) {
701-
details = ` ${address}:${port}`;
701+
const host = address.includes(':') ? `[${address}]` : address; // RFC 5952 Section 6
702+
details = ` ${host}:${port}`;
702703
} else if (address) {
703704
details = ` ${address}`;
704705
}

test/parallel/test-net-autoselectfamily-commandline-option.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ const { createConnection, createServer } = require('net');
3232

3333
if (common.hasIPv6) {
3434
assert.strictEqual(error.code, 'ECONNREFUSED');
35-
assert.strictEqual(error.message, `connect ECONNREFUSED ::1:${port}`);
35+
assert.strictEqual(error.message, `connect ECONNREFUSED [::1]:${port}`);
3636
} else if (error.code === 'EAFNOSUPPORT') {
37-
assert.strictEqual(error.message, `connect EAFNOSUPPORT ::1:${port} - Local (undefined:undefined)`);
37+
assert.strictEqual(error.message, `connect EAFNOSUPPORT [::1]:${port} - Local (undefined:undefined)`);
3838
} else if (error.code === 'EUNATCH') {
39-
assert.strictEqual(error.message, `connect EUNATCH ::1:${port} - Local (:::0)`);
39+
assert.strictEqual(error.message, `connect EUNATCH [::1]:${port} - Local ([::]:0)`);
4040
} else {
4141
assert.strictEqual(error.code, 'EADDRNOTAVAIL');
42-
assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`);
42+
assert.strictEqual(error.message, `connect EADDRNOTAVAIL [::1]:${port} - Local ([::]:0)`);
4343
}
4444

4545
ipv4Server.close();

test/parallel/test-net-autoselectfamily-default.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,14 @@ const autoSelectFamilyAttemptTimeout = common.defaultAutoSelectFamilyAttemptTime
6767
connection.on('error', common.mustCall((error) => {
6868
if (common.hasIPv6) {
6969
assert.strictEqual(error.code, 'ECONNREFUSED');
70-
assert.strictEqual(error.message, `connect ECONNREFUSED ::1:${port}`);
70+
assert.strictEqual(error.message, `connect ECONNREFUSED [::1]:${port}`);
7171
} else if (error.code === 'EAFNOSUPPORT') {
72-
assert.strictEqual(error.message, `connect EAFNOSUPPORT ::1:${port} - Local (undefined:undefined)`);
72+
assert.strictEqual(error.message, `connect EAFNOSUPPORT [::1]:${port} - Local (undefined:undefined)`);
7373
} else if (error.code === 'EUNATCH') {
74-
assert.strictEqual(error.message, `connect EUNATCH ::1:${port} - Local (:::0)`);
74+
assert.strictEqual(error.message, `connect EUNATCH [::1]:${port} - Local ([::]:0)`);
7575
} else {
7676
assert.strictEqual(error.code, 'EADDRNOTAVAIL');
77-
assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`);
77+
assert.strictEqual(error.message, `connect EADDRNOTAVAIL [::1]:${port} - Local ([::]:0)`);
7878
}
7979

8080
ipv4Server.close();

test/parallel/test-net-autoselectfamily.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ if (common.hasIPv6) {
177177
assert.ok(errors.includes('connect ECONNREFUSED 127.0.0.1:10'));
178178

179179
if (common.hasIPv6) {
180-
assert.ok(errors.includes('connect ECONNREFUSED ::1:10'));
180+
assert.ok(errors.includes('connect ECONNREFUSED [::1]:10'));
181181
}
182182
}));
183183
}
@@ -207,14 +207,14 @@ if (common.hasIPv6) {
207207

208208
if (common.hasIPv6) {
209209
assert.strictEqual(error.code, 'ECONNREFUSED');
210-
assert.strictEqual(error.message, `connect ECONNREFUSED ::1:${port}`);
210+
assert.strictEqual(error.message, `connect ECONNREFUSED [::1]:${port}`);
211211
} else if (error.code === 'EAFNOSUPPORT') {
212-
assert.strictEqual(error.message, `connect EAFNOSUPPORT ::1:${port} - Local (undefined:undefined)`);
212+
assert.strictEqual(error.message, `connect EAFNOSUPPORT [::1]:${port} - Local (undefined:undefined)`);
213213
} else if (error.code === 'EUNATCH') {
214-
assert.strictEqual(error.message, `connect EUNATCH ::1:${port} - Local (:::0)`);
214+
assert.strictEqual(error.message, `connect EUNATCH [::1]:${port} - Local ([::]:0)`);
215215
} else {
216216
assert.strictEqual(error.code, 'EADDRNOTAVAIL');
217-
assert.strictEqual(error.message, `connect EADDRNOTAVAIL ::1:${port} - Local (:::0)`);
217+
assert.strictEqual(error.message, `connect EADDRNOTAVAIL [::1]:${port} - Local ([::]:0)`);
218218
}
219219

220220
ipv4Server.close();

0 commit comments

Comments
 (0)