Skip to content

Commit

Permalink
fix(tonic-build,tonic) Add back TLS handling in genereated `Client::c…
Browse files Browse the repository at this point in the history
…onnect` code (#1866)

* tls feature flag for Endpoint::new

* added unit test
  • Loading branch information
mkatychev authored Aug 19, 2024
1 parent c8754f3 commit 7831249
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
5 changes: 5 additions & 0 deletions tests/integration_tests/tests/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ async fn connect_returns_err() {
assert!(res.is_err());
}

#[tokio::test]
async fn connect_handles_tls() {
TestClient::connect("https://example.com").await.unwrap();
}

#[tokio::test]
async fn connect_returns_err_via_call_after_connected() {
let (tx, rx) = oneshot::channel();
Expand Down
18 changes: 18 additions & 0 deletions tonic/src/transport/channel/endpoint.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,24 @@ impl Endpoint {
D::Error: Into<crate::Error>,
{
let me = dst.try_into().map_err(|e| Error::from_source(e.into()))?;
#[cfg(feature = "tls")]
if let Some(tls_config) = me
.uri
.scheme()
.map(|s| s.as_str() == http::uri::Scheme::HTTPS.as_str())
.unwrap_or(false)
.then(|| {
let config = ClientTlsConfig::new();
#[cfg(feature = "tls-native-roots")]
let config = config.with_native_roots();
#[cfg(feature = "tls-webpki-roots")]
let config = config.with_webpki_roots();
config
})
{
return me.tls_config(tls_config);
}

Ok(me)
}

Expand Down

0 comments on commit 7831249

Please sign in to comment.