1'use strict'; 2const common = require('../common'); 3 4if (!common.hasCrypto) 5 common.skip('missing crypto'); 6 7const tls = require('tls'); 8const net = require('net'); 9const assert = require('assert'); 10 11const bonkers = Buffer.alloc(1024, 42); 12 13const server = net.createServer(function(c) { 14 setTimeout(function() { 15 const s = new tls.TLSSocket(c, { 16 isServer: true, 17 server: server 18 }); 19 20 s.on('error', common.mustCall(function(e) { 21 assert.ok(e instanceof Error, 22 'Instance of Error should be passed to error handler'); 23 assert.ok( 24 /SSL routines:[^:]*:wrong version number/.test( 25 e.message), 26 'Expecting SSL unknown protocol'); 27 })); 28 29 s.on('close', function() { 30 server.close(); 31 s.destroy(); 32 }); 33 }, common.platformTimeout(200)); 34}).listen(0, function() { 35 const c = net.connect({ port: this.address().port }, function() { 36 c.write(bonkers); 37 }); 38}); 39