From 5a0357b11144bbcb875e5418b3589a351f7c5a8a Mon Sep 17 00:00:00 2001 From: kixelated Date: Fri, 13 Oct 2023 15:59:54 +0900 Subject: [PATCH] Maybe the order matters. (#93) --- Cargo.lock | 68 +++++++++++++++++++++++++++++++++++++++++ moq-relay/Cargo.toml | 1 + moq-relay/src/main.rs | 2 -- moq-relay/src/server.rs | 21 ++++++------- 4 files changed, 79 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 31af8f8..f0ca02a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1156,6 +1156,7 @@ dependencies = [ "thiserror", "tokio", "tracing", + "tracing-subscriber", "url", "warp", "webtransport-quinn", @@ -1239,6 +1240,16 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-bigint" version = "0.4.4" @@ -1351,6 +1362,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "parking" version = "2.1.0" @@ -1900,6 +1917,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -2042,6 +2068,16 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -2214,6 +2250,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", ] [[package]] @@ -2307,6 +2369,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "value-bag" version = "1.4.1" diff --git a/moq-relay/Cargo.toml b/moq-relay/Cargo.toml index d4387d4..63771aa 100644 --- a/moq-relay/Cargo.toml +++ b/moq-relay/Cargo.toml @@ -45,3 +45,4 @@ clap = { version = "4", features = ["derive"] } log = { version = "0.4", features = ["std"] } env_logger = "0.9" tracing = "0.1" +tracing-subscriber = "0.3" diff --git a/moq-relay/src/main.rs b/moq-relay/src/main.rs index 960a49b..baa220b 100644 --- a/moq-relay/src/main.rs +++ b/moq-relay/src/main.rs @@ -22,12 +22,10 @@ async fn main() -> anyhow::Result<()> { env_logger::init(); // Disable tracing so we don't get a bunch of Quinn spam. - /* let tracer = tracing_subscriber::FmtSubscriber::builder() .with_max_level(tracing::Level::WARN) .finish(); tracing::subscriber::set_global_default(tracer).unwrap(); - */ let config = Config::parse(); diff --git a/moq-relay/src/server.rs b/moq-relay/src/server.rs index e45fb2c..1663f1d 100644 --- a/moq-relay/src/server.rs +++ b/moq-relay/src/server.rs @@ -62,15 +62,17 @@ impl Server { // Create a list of acceptable root certificates. let mut client_roots = rustls::RootCertStore::empty(); - // For local development, we'll accept our own certificate. - for cert in &certs { - client_roots.add(cert).context("failed to add our cert to roots")?; + // Add the platform's native root certificates. + for cert in rustls_native_certs::load_native_certs().context("could not load platform certs")? { + client_roots + .add(&rustls::Certificate(cert.0)) + .context("failed to add root cert")?; } - // Add the platform's native root certificates. - for cert in rustls_native_certs::load_native_certs().expect("could not load platform certs") { - client_roots.add(&rustls::Certificate(cert.0)).unwrap(); - } + // For local development, we'll accept our own certificate. + client_roots + .add(certs.first().unwrap()) + .context("failed to add our cert to roots")?; let mut client_config = rustls::ClientConfig::builder() .with_safe_defaults() @@ -78,10 +80,7 @@ impl Server { .with_no_client_auth(); let mut server_config = rustls::ServerConfig::builder() - .with_safe_default_cipher_suites() - .with_safe_default_kx_groups() - .with_protocol_versions(&[&rustls::version::TLS13]) - .context("failed to create server config")? + .with_safe_defaults() .with_no_client_auth() .with_single_cert(certs, key)?;