Version: v6.3.0
Platform: Linux 3.13.0-83-generic #127-Ubuntu SMP Fri Mar 11 00:25:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Subsystem: TLS
I used the sample code from https://strongloop.com/strongblog/improve-the-performance-of-the-node-js-https-server/ to implement simple TLS sessions:
var tlsSessionStore = {};
httpsServer.on('newSession', function(id, data) {
console.log('NEW HTTPS session - %s', id.toString('hex'));
tlsSessionStore[id] = data;
});
httpsServer.on('resumeSession', function(id, cb) {
console.log('RESUME HTTPS session - %s', id.toString('hex'));
cb(null, tlsSessionStore[id] || null);
});
I found that this would cause Safari 9.1.1 to hang during TLS handshaking
curl 7.43.0 (x86_64-apple-darwin14.0) libcurl/7.43.0 SecureTransport zlib/1.2.5. hangs as soon as it connects.
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3 seems to complete handshaking and then hangs.
If I remove the event handlers for newSession and resumeSession, this behavior goes away.