Read/Write impl rework for rustls#592
Merged
brson merged 4 commits intorust-lang:masterfrom Jul 29, 2016
Merged
Conversation
Contributor
|
OK, holding off on merging for further word. Thanks @inejge. |
Methods like read_tls(), formerly implemented directly on ClientSession, are now accessible via the Session trait, so we need it in scope.
Contributor
Author
|
After discussing my changes in rustls/rustls#12, I think that they can be merged. I've updated rustls to the latest master, which now supports the usage in this PR, and has a number of other fixes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Further tweaks for #568: rustls-enabled rustup can now actually download content. I think that merging should wait, though, since I don't think I thoroughly understand the consequences of the modifications I've had to make both to rustup and rustls in order to make it happen (which is why I've switched it to a private fork for the time being.)
rustls really, really wants to be driven asynchronously, and adapting it to synchronous-style hyper involved manually inserting calls to
write_tls()after processing input packets in theReadimpl (without which the protocol negotiation would hang.) Also,wants_read()in rustls used to returntrueall the time; I modified it to track the size of its plaintext buffer, so that furtherread_tls()calls are triggered only when that buffer is empty. It seems to work, but I'm not sure what happens when the other side sends an alert, or forcibly closes the connection.cc @ctz