From 053362d5ffe042cfb990047580cb4d5583d70a05 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 16 Oct 2024 17:06:38 +0300 Subject: [PATCH 1/3] Change `trust-dns-resolver` to `hickory-resolver` This crate was renamed. For details, see: https://github.com/hickory-dns/hickory-dns/issues/2051 --- Cargo.lock | 93 +++++++++---------- apollo-router/Cargo.toml | 2 +- apollo-router/src/plugins/coprocessor/mod.rs | 4 +- ..._connector.rs => hickory_dns_connector.rs} | 8 +- apollo-router/src/services/http/service.rs | 4 +- apollo-router/src/services/mod.rs | 2 +- 6 files changed, 56 insertions(+), 57 deletions(-) rename apollo-router/src/services/{trust_dns_connector.rs => hickory_dns_connector.rs} (85%) diff --git a/Cargo.lock b/Cargo.lock index 8b422db473..5d3561a871 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -275,6 +275,7 @@ dependencies = [ "graphql_client", "heck 0.5.0", "hex", + "hickory-resolver", "hmac", "http 0.2.12", "http-body 0.4.6", @@ -382,7 +383,6 @@ dependencies = [ "tracing-serde", "tracing-subscriber", "tracing-test", - "trust-dns-resolver", "uname", "url", "urlencoding", @@ -3167,6 +3167,51 @@ dependencies = [ "serde", ] +[[package]] +name = "hickory-proto" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand 0.8.5", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot", + "rand 0.8.5", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "hmac" version = "0.12.1" @@ -6993,52 +7038,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "trust-dns-proto" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand 0.8.5", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lru-cache", - "once_cell", - "parking_lot", - "rand 0.8.5", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", - "trust-dns-proto", -] - [[package]] name = "try-lock" version = "0.2.5" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index ff09306e2a..b6fcf8b6b0 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -236,7 +236,7 @@ tracing = "0.1.40" tracing-core = "0.1.32" tracing-futures = { version = "0.2.5", features = ["futures-03"] } tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json"] } -trust-dns-resolver = "0.23.2" +hickory-resolver = "0.24.1" url = { version = "2.5.2", features = ["serde"] } urlencoding = "2.1.3" uuid = { version = "1.9.1", features = ["serde", "v4"] } diff --git a/apollo-router/src/plugins/coprocessor/mod.rs b/apollo-router/src/plugins/coprocessor/mod.rs index ccaaf61223..4dcdec681a 100644 --- a/apollo-router/src/plugins/coprocessor/mod.rs +++ b/apollo-router/src/plugins/coprocessor/mod.rs @@ -53,8 +53,8 @@ use crate::services::router::body::get_body_bytes; use crate::services::router::body::RouterBody; use crate::services::router::body::RouterBodyConverter; use crate::services::subgraph; -use crate::services::trust_dns_connector::new_async_http_connector; -use crate::services::trust_dns_connector::AsyncHyperResolver; +use crate::services::hickory_dns_connector::new_async_http_connector; +use crate::services::hickory_dns_connector::AsyncHyperResolver; #[cfg(test)] mod test; diff --git a/apollo-router/src/services/trust_dns_connector.rs b/apollo-router/src/services/hickory_dns_connector.rs similarity index 85% rename from apollo-router/src/services/trust_dns_connector.rs rename to apollo-router/src/services/hickory_dns_connector.rs index 9855c93e7b..68ee24ce81 100644 --- a/apollo-router/src/services/trust_dns_connector.rs +++ b/apollo-router/src/services/hickory_dns_connector.rs @@ -9,10 +9,10 @@ use std::task::Poll; use hyper::client::connect::dns::Name; use hyper::client::HttpConnector; use hyper::service::Service; -use trust_dns_resolver::TokioAsyncResolver; +use hickory_resolver::TokioAsyncResolver; -/// Wrapper around trust-dns-resolver's -/// [`TokioAsyncResolver`](https://docs.rs/trust-dns-resolver/0.23.2/trust_dns_resolver/type.TokioAsyncResolver.html) +/// Wrapper around hickory-resolver's +/// [`TokioAsyncResolver`](https://docs.rs/hickory-resolver/latest/hickory_resolver/type.TokioAsyncResolver.html) /// /// The resolver runs a background Task which manages dns requests. When a new resolver is created, /// the background task is also created, it needs to be spawned on top of an executor before using the client, @@ -22,7 +22,7 @@ pub(crate) struct AsyncHyperResolver(TokioAsyncResolver); impl AsyncHyperResolver { /// constructs a new resolver from default configuration, uses the corresponding method of - /// [`TokioAsyncResolver`](https://docs.rs/trust-dns-resolver/0.23.2/trust_dns_resolver/type.TokioAsyncResolver.html#method.new) + /// [`TokioAsyncResolver`](https://docs.rs/hickory-resolver/latest/hickory_resolver/type.TokioAsyncResolver.html) pub(crate) fn new_from_system_conf() -> Result { let resolver = TokioAsyncResolver::tokio_from_system_conf()?; Ok(Self(resolver)) diff --git a/apollo-router/src/services/http/service.rs b/apollo-router/src/services/http/service.rs index cc37fa9083..490230a6fc 100644 --- a/apollo-router/src/services/http/service.rs +++ b/apollo-router/src/services/http/service.rs @@ -44,8 +44,8 @@ use crate::plugins::telemetry::LOGGING_DISPLAY_BODY; use crate::plugins::telemetry::LOGGING_DISPLAY_HEADERS; use crate::plugins::traffic_shaping::Http2Config; use crate::services::router::body::RouterBody; -use crate::services::trust_dns_connector::new_async_http_connector; -use crate::services::trust_dns_connector::AsyncHyperResolver; +use crate::services::hickory_dns_connector::new_async_http_connector; +use crate::services::hickory_dns_connector::AsyncHyperResolver; use crate::Configuration; use crate::Context; diff --git a/apollo-router/src/services/mod.rs b/apollo-router/src/services/mod.rs index 802510d45d..31dca2e90a 100644 --- a/apollo-router/src/services/mod.rs +++ b/apollo-router/src/services/mod.rs @@ -34,7 +34,7 @@ pub mod subgraph; pub(crate) mod subgraph_service; pub mod supergraph; pub mod transport; -pub(crate) mod trust_dns_connector; +pub(crate) mod hickory_dns_connector; impl AsRef for http_ext::Request { fn as_ref(&self) -> &Request { From e0946b71aef7cd96646a174bd25e743cff7928c7 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 16 Oct 2024 17:23:06 +0300 Subject: [PATCH 2/3] lint fixes --- apollo-router/src/plugins/coprocessor/mod.rs | 4 ++-- apollo-router/src/services/hickory_dns_connector.rs | 2 +- apollo-router/src/services/http/service.rs | 2 +- apollo-router/src/services/mod.rs | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apollo-router/src/plugins/coprocessor/mod.rs b/apollo-router/src/plugins/coprocessor/mod.rs index 4dcdec681a..c986f2629a 100644 --- a/apollo-router/src/plugins/coprocessor/mod.rs +++ b/apollo-router/src/plugins/coprocessor/mod.rs @@ -48,13 +48,13 @@ use crate::services::external::Externalizable; use crate::services::external::PipelineStep; use crate::services::external::DEFAULT_EXTERNALIZATION_TIMEOUT; use crate::services::external::EXTERNALIZABLE_VERSION; +use crate::services::hickory_dns_connector::new_async_http_connector; +use crate::services::hickory_dns_connector::AsyncHyperResolver; use crate::services::router; use crate::services::router::body::get_body_bytes; use crate::services::router::body::RouterBody; use crate::services::router::body::RouterBodyConverter; use crate::services::subgraph; -use crate::services::hickory_dns_connector::new_async_http_connector; -use crate::services::hickory_dns_connector::AsyncHyperResolver; #[cfg(test)] mod test; diff --git a/apollo-router/src/services/hickory_dns_connector.rs b/apollo-router/src/services/hickory_dns_connector.rs index 68ee24ce81..70e26ab497 100644 --- a/apollo-router/src/services/hickory_dns_connector.rs +++ b/apollo-router/src/services/hickory_dns_connector.rs @@ -6,10 +6,10 @@ use std::pin::Pin; use std::task::Context; use std::task::Poll; +use hickory_resolver::TokioAsyncResolver; use hyper::client::connect::dns::Name; use hyper::client::HttpConnector; use hyper::service::Service; -use hickory_resolver::TokioAsyncResolver; /// Wrapper around hickory-resolver's /// [`TokioAsyncResolver`](https://docs.rs/hickory-resolver/latest/hickory_resolver/type.TokioAsyncResolver.html) diff --git a/apollo-router/src/services/http/service.rs b/apollo-router/src/services/http/service.rs index 490230a6fc..05e93ca5de 100644 --- a/apollo-router/src/services/http/service.rs +++ b/apollo-router/src/services/http/service.rs @@ -43,9 +43,9 @@ use crate::plugins::telemetry::reload::prepare_context; use crate::plugins::telemetry::LOGGING_DISPLAY_BODY; use crate::plugins::telemetry::LOGGING_DISPLAY_HEADERS; use crate::plugins::traffic_shaping::Http2Config; -use crate::services::router::body::RouterBody; use crate::services::hickory_dns_connector::new_async_http_connector; use crate::services::hickory_dns_connector::AsyncHyperResolver; +use crate::services::router::body::RouterBody; use crate::Configuration; use crate::Context; diff --git a/apollo-router/src/services/mod.rs b/apollo-router/src/services/mod.rs index 31dca2e90a..c244cac420 100644 --- a/apollo-router/src/services/mod.rs +++ b/apollo-router/src/services/mod.rs @@ -25,6 +25,7 @@ pub(crate) use crate::services::supergraph::Response as SupergraphResponse; pub mod execution; pub(crate) mod external; +pub(crate) mod hickory_dns_connector; pub(crate) mod http; pub(crate) mod layers; pub(crate) mod new_service; @@ -34,7 +35,6 @@ pub mod subgraph; pub(crate) mod subgraph_service; pub mod supergraph; pub mod transport; -pub(crate) mod hickory_dns_connector; impl AsRef for http_ext::Request { fn as_ref(&self) -> &Request { From fcb7c7128d95d2b961a39ade51a19321bb7836f7 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Thu, 17 Oct 2024 01:47:01 +0300 Subject: [PATCH 3/3] change order of crates in Cargo.toml --- apollo-router/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index 75b08cd5b1..d2a714c9c8 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -236,7 +236,6 @@ tracing = "0.1.40" tracing-core = "0.1.32" tracing-futures = { version = "0.2.5", features = ["futures-03"] } tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json"] } -hickory-resolver = "0.24.1" url = { version = "2.5.2", features = ["serde"] } urlencoding = "2.1.3" uuid = { version = "1.9.1", features = ["serde", "v4"] } @@ -247,6 +246,7 @@ tokio-tungstenite = { version = "0.20.1", features = [ "rustls-tls-native-roots", ] } tokio-rustls = "0.24.1" +hickory-resolver = "0.24.1" http-serde = "1.1.3" hmac = "0.12.1" parking_lot = { version = "0.12.3", features = ["serde"] }