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.
Some of these changes come from comparing
Curl_http
andstart_CONNECT
, which are similar, and adding things to them that are present in one and missing in another.The most important changes:
start_CONNECT
, add a missinghyper_clientconn_free
call on the happy path.start_CONNECT
, add a missinghyper_request_free
on the error path.bodysend
, add a missinghyper_body_free
on an early-exit path.bodysend
, remove an unnecessaryhyper_body_free
on a different error path that would cause a double-free. https://docs.rs/hyper/latest/hyper/ffi/fn.hyper_request_set_body.html says ofhyper_request_set_body
: "This takes ownership of the hyper_body *, you must not use it or free it after setting it on the request." This is true even ifhyper_request_set_body
returns an error; I confirmed this by looking at the hyper source code.Other changes are minor but make things slightly nicer.