From 9123f68a8905ab97f02417caf039a1799c9de437 Mon Sep 17 00:00:00 2001 From: tottoto Date: Thu, 16 Nov 2023 06:08:16 +0900 Subject: [PATCH] chore: Remove redundant helper constructor (#1534) * chore: Remove redundant helper constructor * chore: Refactor endpoint to construct connector --- tonic/src/transport/channel/endpoint.rs | 35 ++++++++++-------------- tonic/src/transport/service/connector.rs | 12 +------- tonic/src/transport/service/discover.rs | 7 +---- tonic/src/transport/service/mod.rs | 2 +- 4 files changed, 17 insertions(+), 39 deletions(-) diff --git a/tonic/src/transport/channel/endpoint.rs b/tonic/src/transport/channel/endpoint.rs index c599931e6..6aacb57a5 100644 --- a/tonic/src/transport/channel/endpoint.rs +++ b/tonic/src/transport/channel/endpoint.rs @@ -301,6 +301,16 @@ impl Endpoint { self } + pub(crate) fn connector(&self, c: C) -> service::Connector { + #[cfg(feature = "tls")] + let connector = service::Connector::new(c, self.tls.clone()); + + #[cfg(not(feature = "tls"))] + let connector = service::Connector::new(c); + + connector + } + /// Create a channel from this config. pub async fn connect(&self) -> Result { let mut http = hyper::client::connect::HttpConnector::new(); @@ -308,11 +318,7 @@ impl Endpoint { http.set_nodelay(self.tcp_nodelay); http.set_keepalive(self.tcp_keepalive); - #[cfg(feature = "tls")] - let connector = service::connector(http, self.tls.clone()); - - #[cfg(not(feature = "tls"))] - let connector = service::connector(http); + let connector = self.connector(http); if let Some(connect_timeout) = self.connect_timeout { let mut connector = hyper_timeout::TimeoutConnector::new(connector); @@ -333,11 +339,7 @@ impl Endpoint { http.set_nodelay(self.tcp_nodelay); http.set_keepalive(self.tcp_keepalive); - #[cfg(feature = "tls")] - let connector = service::connector(http, self.tls.clone()); - - #[cfg(not(feature = "tls"))] - let connector = service::connector(http); + let connector = self.connector(http); if let Some(connect_timeout) = self.connect_timeout { let mut connector = hyper_timeout::TimeoutConnector::new(connector); @@ -362,11 +364,7 @@ impl Endpoint { C::Future: Send + 'static, crate::Error: From + Send + 'static, { - #[cfg(feature = "tls")] - let connector = service::connector(connector, self.tls.clone()); - - #[cfg(not(feature = "tls"))] - let connector = service::connector(connector); + let connector = self.connector(connector); if let Some(connect_timeout) = self.connect_timeout { let mut connector = hyper_timeout::TimeoutConnector::new(connector); @@ -391,12 +389,7 @@ impl Endpoint { C::Future: Send + 'static, crate::Error: From + Send + 'static, { - #[cfg(feature = "tls")] - let connector = service::connector(connector, self.tls.clone()); - - #[cfg(not(feature = "tls"))] - let connector = service::connector(connector); - + let connector = self.connector(connector); Channel::new(connector, self.clone()) } diff --git a/tonic/src/transport/service/connector.rs b/tonic/src/transport/service/connector.rs index b672f3bf3..a5e0d9eb9 100644 --- a/tonic/src/transport/service/connector.rs +++ b/tonic/src/transport/service/connector.rs @@ -8,16 +8,6 @@ use std::task::{Context, Poll}; use tower::make::MakeConnection; use tower_service::Service; -#[cfg(not(feature = "tls"))] -pub(crate) fn connector(inner: C) -> Connector { - Connector::new(inner) -} - -#[cfg(feature = "tls")] -pub(crate) fn connector(inner: C, tls: Option) -> Connector { - Connector::new(inner, tls) -} - pub(crate) struct Connector { inner: C, #[cfg(feature = "tls")] @@ -34,7 +24,7 @@ impl Connector { } #[cfg(feature = "tls")] - fn new(inner: C, tls: Option) -> Self { + pub(crate) fn new(inner: C, tls: Option) -> Self { Self { inner, tls } } diff --git a/tonic/src/transport/service/discover.rs b/tonic/src/transport/service/discover.rs index 6ca4ab2c2..2d23ca74c 100644 --- a/tonic/src/transport/service/discover.rs +++ b/tonic/src/transport/service/discover.rs @@ -1,4 +1,3 @@ -use super::super::service; use super::connection::Connection; use crate::transport::Endpoint; @@ -38,12 +37,8 @@ impl Stream for DynamicServiceStream { http.set_keepalive(endpoint.tcp_keepalive); http.set_connect_timeout(endpoint.connect_timeout); http.enforce_http(false); - #[cfg(feature = "tls")] - let connector = service::connector(http, endpoint.tls.clone()); - #[cfg(not(feature = "tls"))] - let connector = service::connector(http); - let connection = Connection::lazy(connector, endpoint); + let connection = Connection::lazy(endpoint.connector(http), endpoint); let change = Ok(Change::Insert(k, connection)); Poll::Ready(Some(change)) } diff --git a/tonic/src/transport/service/mod.rs b/tonic/src/transport/service/mod.rs index 52addb322..69d850f10 100644 --- a/tonic/src/transport/service/mod.rs +++ b/tonic/src/transport/service/mod.rs @@ -13,7 +13,7 @@ mod user_agent; pub(crate) use self::add_origin::AddOrigin; pub(crate) use self::connection::Connection; -pub(crate) use self::connector::connector; +pub(crate) use self::connector::Connector; pub(crate) use self::discover::DynamicServiceStream; pub(crate) use self::executor::SharedExec; pub(crate) use self::grpc_timeout::GrpcTimeout;