feat: add alpn_protocols
for TlsConnector::connect_with
#116
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.
Since
rustls 0.23.27
addedClientConnection::new_with_alpn
function, it is possible to set a different ALPN for each TLS connection, which is a very useful feature.Given that there are already
TlsConnector::connect
andTlsConnector::connect_with
functions, adding a newTlsConnector::connect_with_alpn
function might be confusing, so I added a argumentalpn_protocols: Option<Vec<Vec<u8>>>
to theTlsConnector::connect_with
function, which is expected to only affect a small number of users.We also refer to the implementation of
rustls
. When the value ofalpn_protocols
isSome
, we will use the it for current connection; when it is set toNone
, we will use the defaultalpn_protocols
in the configuration. This makesTlsConnector::connect
andTlsConnector::connect_with
behave the same as before whenalpn_protocols
isNone
.Reference: https://docs.rs/rustls/0.23.27/src/rustls/client/client_conn.rs.html#705-707