From f10faa351670d1becf46873811a67f35b511afae Mon Sep 17 00:00:00 2001 From: daxpedda Date: Thu, 5 Oct 2023 16:00:56 +0200 Subject: [PATCH] Rename HTTPS implementation to H2 --- bin/tests/named_https_tests.rs | 2 +- .../{https_client_connection.rs => h2_client_connection.rs} | 2 +- crates/client/src/lib.rs | 6 +++--- .../https_client_stream.rs => h2/h2_client_stream.rs} | 0 crates/proto/src/{https/https_server.rs => h2/h2_server.rs} | 2 +- crates/proto/src/{https => h2}/mod.rs | 6 +++--- crates/proto/src/lib.rs | 6 +++--- crates/resolver/src/{https.rs => h2.rs} | 2 +- crates/resolver/src/lib.rs | 4 ++-- crates/resolver/src/name_server/connection_provider.rs | 6 +++--- .../server/src/server/{https_handler.rs => h2_handler.rs} | 6 +++--- crates/server/src/server/mod.rs | 4 ++-- crates/server/src/server/server_future.rs | 2 +- tests/integration-tests/tests/client_future_tests.rs | 2 +- util/src/bin/dns.rs | 2 +- 15 files changed, 26 insertions(+), 26 deletions(-) rename crates/client/src/{https_client_connection.rs => h2_client_connection.rs} (97%) rename crates/proto/src/{https/https_client_stream.rs => h2/h2_client_stream.rs} (100%) rename crates/proto/src/{https/https_server.rs => h2/h2_server.rs} (99%) rename crates/proto/src/{https => h2}/mod.rs (87%) rename crates/resolver/src/{https.rs => h2.rs} (98%) rename crates/server/src/server/{https_handler.rs => h2_handler.rs} (96%) diff --git a/bin/tests/named_https_tests.rs b/bin/tests/named_https_tests.rs index b8c0ccae..321d07ff 100644 --- a/bin/tests/named_https_tests.rs +++ b/bin/tests/named_https_tests.rs @@ -20,7 +20,7 @@ use rustls::{Certificate, ClientConfig, OwnedTrustAnchor, RootCertStore}; use tokio::net::TcpStream as TokioTcpStream; use tokio::runtime::Runtime; use trust_dns_client::client::*; -use trust_dns_proto::https::HttpsClientStreamBuilder; +use trust_dns_proto::h2::HttpsClientStreamBuilder; use trust_dns_proto::iocompat::AsyncIoTokioAsStd; use server_harness::{named_test_harness, query_a}; diff --git a/crates/client/src/https_client_connection.rs b/crates/client/src/h2_client_connection.rs similarity index 97% rename from crates/client/src/https_client_connection.rs rename to crates/client/src/h2_client_connection.rs index 9c41f4f4..30d57285 100644 --- a/crates/client/src/https_client_connection.rs +++ b/crates/client/src/h2_client_connection.rs @@ -12,7 +12,7 @@ use std::net::SocketAddr; use std::sync::Arc; use rustls::ClientConfig; -use trust_dns_proto::https::{HttpsClientConnect, HttpsClientStream, HttpsClientStreamBuilder}; +use trust_dns_proto::h2::{HttpsClientConnect, HttpsClientStream, HttpsClientStreamBuilder}; use trust_dns_proto::tcp::Connect; use crate::client::{ClientConnection, Signer}; diff --git a/crates/client/src/lib.rs b/crates/client/src/lib.rs index ee3927e3..285700c4 100644 --- a/crates/client/src/lib.rs +++ b/crates/client/src/lib.rs @@ -282,15 +282,15 @@ pub mod udp; // TODO: consider removing tcp/udp/https modules... #[cfg(feature = "dns-over-https")] -mod https_client_connection; +mod h2_client_connection; pub use trust_dns_proto as proto; /// The https module which contains all https related connection types #[cfg(feature = "dns-over-https")] #[cfg_attr(docsrs, doc(cfg(feature = "dns-over-https")))] -pub mod https { - pub use super::https_client_connection::HttpsClientConnection; +pub mod h2 { + pub use super::h2_client_connection::HttpsClientConnection; } /// Returns a version as specified in Cargo.toml diff --git a/crates/proto/src/https/https_client_stream.rs b/crates/proto/src/h2/h2_client_stream.rs similarity index 100% rename from crates/proto/src/https/https_client_stream.rs rename to crates/proto/src/h2/h2_client_stream.rs diff --git a/crates/proto/src/https/https_server.rs b/crates/proto/src/h2/h2_server.rs similarity index 99% rename from crates/proto/src/https/https_server.rs rename to crates/proto/src/h2/h2_server.rs index 0d391b66..9b5bef47 100644 --- a/crates/proto/src/https/https_server.rs +++ b/crates/proto/src/h2/h2_server.rs @@ -18,8 +18,8 @@ use http::header::CONTENT_LENGTH; use http::{Method, Request}; use tracing::debug; +use crate::h2::HttpsError; use crate::http::Version; -use crate::https::HttpsError; /// Given an HTTP request, return a future that will result in the next sequence of bytes. /// diff --git a/crates/proto/src/https/mod.rs b/crates/proto/src/h2/mod.rs similarity index 87% rename from crates/proto/src/https/mod.rs rename to crates/proto/src/h2/mod.rs index 4651faeb..dd44b57b 100644 --- a/crates/proto/src/https/mod.rs +++ b/crates/proto/src/h2/mod.rs @@ -7,11 +7,11 @@ //! TLS protocol related components for DNS over HTTPS (DoH) -mod https_client_stream; -pub mod https_server; +mod h2_client_stream; +pub mod h2_server; pub use crate::http::error::{Error as HttpsError, Result as HttpsResult}; -pub use self::https_client_stream::{ +pub use self::h2_client_stream::{ HttpsClientConnect, HttpsClientResponse, HttpsClientStream, HttpsClientStreamBuilder, }; diff --git a/crates/proto/src/lib.rs b/crates/proto/src/lib.rs index c29ec3aa..74f1c12d 100644 --- a/crates/proto/src/lib.rs +++ b/crates/proto/src/lib.rs @@ -62,6 +62,9 @@ pub fn spawn_bg + Send + 'static, R: Send + 'static>( } pub mod error; +#[cfg(feature = "dns-over-https")] +#[cfg_attr(docsrs, doc(cfg(feature = "dns-over-https")))] +pub mod h2; #[cfg(feature = "dns-over-h3")] #[cfg_attr(docsrs, doc(cfg(feature = "dns-over-h3")))] pub mod h3; @@ -71,9 +74,6 @@ pub mod h3; doc(cfg(any(feature = "dns-over-https", feature = "dns-over-h3"))) )] pub mod http; -#[cfg(feature = "dns-over-https")] -#[cfg_attr(docsrs, doc(cfg(feature = "dns-over-https")))] -pub mod https; #[cfg(feature = "mdns")] #[cfg_attr(docsrs, doc(cfg(feature = "mdns")))] pub mod multicast; diff --git a/crates/resolver/src/https.rs b/crates/resolver/src/h2.rs similarity index 98% rename from crates/resolver/src/https.rs rename to crates/resolver/src/h2.rs index 99791d02..72f524a8 100644 --- a/crates/resolver/src/https.rs +++ b/crates/resolver/src/h2.rs @@ -10,7 +10,7 @@ use std::net::SocketAddr; use crate::tls::CLIENT_CONFIG; -use proto::https::{HttpsClientConnect, HttpsClientStream, HttpsClientStreamBuilder}; +use proto::h2::{HttpsClientConnect, HttpsClientStream, HttpsClientStreamBuilder}; use proto::tcp::{Connect, DnsTcpStream}; use proto::xfer::{DnsExchange, DnsExchangeConnect}; use proto::TokioTime; diff --git a/crates/resolver/src/lib.rs b/crates/resolver/src/lib.rs index 83ca2876..42f31997 100644 --- a/crates/resolver/src/lib.rs +++ b/crates/resolver/src/lib.rs @@ -259,11 +259,11 @@ pub mod config; pub mod dns_lru; pub mod dns_sd; pub mod error; +#[cfg(feature = "dns-over-https")] +mod h2; #[cfg(feature = "dns-over-h3")] mod h3; mod hosts; -#[cfg(feature = "dns-over-https")] -mod https; pub mod lookup; pub mod lookup_ip; // TODO: consider #[doc(hidden)] diff --git a/crates/resolver/src/name_server/connection_provider.rs b/crates/resolver/src/name_server/connection_provider.rs index 79a96f20..ea071a43 100644 --- a/crates/resolver/src/name_server/connection_provider.rs +++ b/crates/resolver/src/name_server/connection_provider.rs @@ -31,10 +31,10 @@ use tokio_openssl::SslStream as TokioTlsStream; use tokio_rustls::client::TlsStream as TokioTlsStream; use crate::config::{NameServerConfig, Protocol, ResolverOpts}; +#[cfg(feature = "dns-over-https")] +use proto::h2::{HttpsClientConnect, HttpsClientStream}; #[cfg(feature = "dns-over-h3")] use proto::h3::{H3ClientConnect, H3ClientStream}; -#[cfg(feature = "dns-over-https")] -use proto::https::{HttpsClientConnect, HttpsClientStream}; #[cfg(feature = "mdns")] use proto::multicast::{MdnsClientConnect, MdnsClientStream, MdnsQueryType}; #[cfg(feature = "dns-over-quic")] @@ -354,7 +354,7 @@ impl ConnectionProvider for GenericConnector

{ let client_config = config.tls_config.clone(); let tcp_future = self.runtime_provider.connect_tcp(socket_addr); - let exchange = crate::https::new_https_stream_with_future( + let exchange = crate::h2::new_https_stream_with_future( tcp_future, socket_addr, tls_dns_name, diff --git a/crates/server/src/server/https_handler.rs b/crates/server/src/server/h2_handler.rs similarity index 96% rename from crates/server/src/server/https_handler.rs rename to crates/server/src/server/h2_handler.rs index d80752df..bda81356 100644 --- a/crates/server/src/server/https_handler.rs +++ b/crates/server/src/server/h2_handler.rs @@ -17,7 +17,7 @@ use trust_dns_proto::{http::Version, rr::Record}; use crate::{ authority::MessageResponse, - proto::https::https_server, + proto::h2::h2_server, server::{ request_handler::RequestHandler, response_handler::ResponseHandler, server_future, Protocol, ResponseInfo, @@ -71,7 +71,7 @@ pub(crate) async fn h2_handler( let responder = HttpsResponseHandle(Arc::new(Mutex::new(respond))); tokio::spawn(async move { - match https_server::message_from(dns_hostname, request).await { + match h2_server::message_from(dns_hostname, request).await { Ok(bytes) => handle_request(bytes, src_addr, handler, responder).await, Err(err) => warn!("error while handling request from {}: {}", src_addr, err), }; @@ -108,8 +108,8 @@ impl ResponseHandler for HttpsResponseHandle { impl Iterator + Send + 'a, >, ) -> io::Result { + use crate::proto::h2::HttpsError; use crate::proto::http::response; - use crate::proto::https::HttpsError; use crate::proto::serialize::binary::BinEncoder; let mut bytes = Vec::with_capacity(512); diff --git a/crates/server/src/server/mod.rs b/crates/server/src/server/mod.rs index a70a85c1..7b091475 100644 --- a/crates/server/src/server/mod.rs +++ b/crates/server/src/server/mod.rs @@ -7,10 +7,10 @@ //! `Server` component for hosting a domain name servers operations. +#[cfg(feature = "dns-over-https")] +mod h2_handler; #[cfg(feature = "dns-over-h3")] mod h3_handler; -#[cfg(feature = "dns-over-https")] -mod https_handler; mod protocol; #[cfg(feature = "dns-over-quic")] mod quic_handler; diff --git a/crates/server/src/server/server_future.rs b/crates/server/src/server/server_future.rs index 9f71c6a4..33979206 100644 --- a/crates/server/src/server/server_future.rs +++ b/crates/server/src/server/server_future.rs @@ -595,7 +595,7 @@ impl ServerFuture { use tokio_rustls::TlsAcceptor; use crate::proto::rustls::tls_server; - use crate::server::https_handler::h2_handler; + use crate::server::h2_handler::h2_handler; let dns_hostname: Option> = dns_hostname.map(|n| n.into()); diff --git a/tests/integration-tests/tests/client_future_tests.rs b/tests/integration-tests/tests/client_future_tests.rs index 5daca04a..34f2b5b3 100644 --- a/tests/integration-tests/tests/client_future_tests.rs +++ b/tests/integration-tests/tests/client_future_tests.rs @@ -132,7 +132,7 @@ fn test_query_tcp_ipv6() { #[cfg(feature = "dns-over-https-rustls")] fn test_query_https() { use rustls::{ClientConfig, OwnedTrustAnchor, RootCertStore}; - use trust_dns_proto::https::HttpsClientStreamBuilder; + use trust_dns_proto::h2::HttpsClientStreamBuilder; const ALPN_H2: &[u8] = b"h2"; diff --git a/util/src/bin/dns.rs b/util/src/bin/dns.rs index f37d7262..2299ed67 100644 --- a/util/src/bin/dns.rs +++ b/util/src/bin/dns.rs @@ -314,7 +314,7 @@ async fn https(_opts: Opts) -> Result<(), Box> { #[cfg(feature = "dns-over-https")] async fn https(opts: Opts) -> Result<(), Box> { - use trust_dns_proto::https::HttpsClientStreamBuilder; + use trust_dns_proto::h2::HttpsClientStreamBuilder; let nameserver = opts.nameserver; let alpn = opts