Remove tls.createSecurePair usage, closes #515 #689
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The changes replace
tls.createSecurePair
withTLSSocket & DuplexPair
on Node 8 and newer.Some notes:
TLSSocket
when aDuplexPair
socket passed to the constructor. Therefore the oldtls.createSecurePair
is still used for anything before Node 8.the Sinon fake timers used inFaking justconnection-retry-test.js
somehow breakDuplexPair
internally, the bytes just aren't passed through it. Removing the timer faking does not cause the tests to fail when using an encrypted connection, but it does cause a failure when using an unencrypted connection (so probably just based on luck regarding timing). Any ideas how to address this? Use the fake timers if the connection used is unencrypted? Or maybe debug the root cause further?setTimeout
seems to fixDuplexPair
.