mirror of https://github.com/lukechilds/node.git
Browse Source
Removes branch that would make TLSSocket emit '_tlsError' event if error occured on handshake and control was not released, as it was never happening. Addedd test for tls.Server to ensure it still emits 'tlsClientError' as expected. Fixes: https://github.com/nodejs/node/issues/8803 PR-URL: https://github.com/nodejs/node/pull/8805 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Fedor Indutny <fedor@indutny.com>v6.x
committed by
Jeremiah Senkpiel
3 changed files with 78 additions and 1 deletions
@ -0,0 +1,37 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
|
|||
if (!common.hasCrypto) { |
|||
common.skip('missing crypto'); |
|||
return; |
|||
} |
|||
const tls = require('tls'); |
|||
const net = require('net'); |
|||
const assert = require('assert'); |
|||
|
|||
const bonkers = Buffer.alloc(1024, 42); |
|||
|
|||
let tlsClientErrorEmited = false; |
|||
|
|||
const server = tls.createServer({}) |
|||
.listen(0, function() { |
|||
const c = net.connect({ port: this.address().port }, function() { |
|||
c.write(bonkers); |
|||
}); |
|||
|
|||
}).on('tlsClientError', function(e) { |
|||
tlsClientErrorEmited = true; |
|||
assert.ok(e instanceof Error, |
|||
'Instance of Error should be passed to error handler'); |
|||
assert.ok(e.message.match( |
|||
/SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol/), |
|||
'Expecting SSL unknown protocol'); |
|||
}); |
|||
|
|||
setTimeout(function() { |
|||
server.close(); |
|||
|
|||
assert.ok(tlsClientErrorEmited, |
|||
'tlsClientError should be emited'); |
|||
|
|||
}, common.platformTimeout(200)); |
@ -0,0 +1,38 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
|
|||
if (!common.hasCrypto) { |
|||
common.skip('missing crypto'); |
|||
return; |
|||
} |
|||
const tls = require('tls'); |
|||
const net = require('net'); |
|||
const assert = require('assert'); |
|||
|
|||
const bonkers = Buffer.alloc(1024, 42); |
|||
|
|||
const server = net.createServer(function(c) { |
|||
setTimeout(function() { |
|||
const s = new tls.TLSSocket(c, { |
|||
isServer: true, |
|||
server: server |
|||
}); |
|||
|
|||
s.on('error', common.mustCall(function(e) { |
|||
assert.ok(e instanceof Error, |
|||
'Instance of Error should be passed to error handler'); |
|||
assert.ok(e.message.match( |
|||
/SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol/), |
|||
'Expecting SSL unknown protocol'); |
|||
})); |
|||
|
|||
s.on('close', function() { |
|||
server.close(); |
|||
s.destroy(); |
|||
}); |
|||
}, common.platformTimeout(200)); |
|||
}).listen(0, function() { |
|||
const c = net.connect({port: this.address().port}, function() { |
|||
c.write(bonkers); |
|||
}); |
|||
}); |
Loading…
Reference in new issue