Update secure channel params earlier #176
Merged
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.
Issue #175 is likely caused by a race condition, which happens because we don't update the secure channel until we've received the response over the oneshot channel from the transport.
This fixes that by giving the transport access to the secure channel state directly, and calling
end_issue_or_renew_secure_channelthere instead of as part of sending the request.Nothing else has really changed, we still hold a lock while renewing the channel, this just makes it so that there is no way we can receive any more chunks before the secure channel has been updated.
I noticed when doing this that we hold a write lock on the secure channel which we almost never need. I'd like us to fix that, at some point.
Confirmed: this fixes #175.