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 const socket = new net.Socket(); 17 18 let errored = false; 19 tls.connect({ socket }) 20 .once('error', common.mustCall((e) => { 21 assert.strictEqual(e.code, 'ECONNRESET'); 22 assert.strictEqual(e.path, undefined); 23 assert.strictEqual(e.host, undefined); 24 assert.strictEqual(e.port, undefined); 25 assert.strictEqual(e.localAddress, undefined); 26 errored = true; 27 server.close(); 28 })) 29 .on('close', common.mustCall(() => { 30 assert.strictEqual(errored, true); 31 })); 32 33 socket.connect(port); 34})); 35