In some conditions it can happen that the client-side socket is destroyed
before the server-side socket has gracefully closed, thus causing a
'ECONNRESET' error in this socket. To solve this, wait in the client-side
socket for the 'end' event before closing it.
PR-URL: https://github.com/nodejs/node/pull/4043
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
var c = tls.connect(common.PORT, {
rejectUnauthorized: false
}, function() {
+ c.on('end', common.mustCall(function() {
+ c.end();
+ server.close();
+ }));
+
+ c.on('data', function(data) {
+ assert.equal(data, 'ok');
+ });
+
cert = c.getPeerCertificate();
- c.destroy();
- server.close();
});
});