1'use strict'; 2 3const common = require('../common'); 4if (!common.hasCrypto) 5 common.skip('missing crypto'); 6 7const assert = require('assert'); 8const net = require('net'); 9const tls = require('tls'); 10 11const server = net.createServer((c) => { 12 c.end(); 13}).listen(common.mustCall(() => { 14 const port = server.address().port; 15 16 let errored = false; 17 tls.connect({ 18 port: port, 19 localAddress: common.localhostIPv4 20 }, common.localhostIPv4) 21 .once('error', common.mustCall((e) => { 22 assert.strictEqual(e.code, 'ECONNRESET'); 23 assert.strictEqual(e.path, undefined); 24 assert.strictEqual(e.host, undefined); 25 assert.strictEqual(e.port, port); 26 assert.strictEqual(e.localAddress, common.localhostIPv4); 27 server.close(); 28 errored = true; 29 })) 30 .on('close', common.mustCall(() => { 31 assert.strictEqual(errored, true); 32 })); 33})); 34