From 4b9d11dc9e4decc7e20d615cde6b9d9fb82e9e7e Mon Sep 17 00:00:00 2001 From: jasonwitty Date: Fri, 21 Nov 2025 00:21:05 -0800 Subject: [PATCH] hotfix for issue with socktop agent not creating ssl certificate on first launch after upgrade of axum server version. --- Cargo.lock | 2 +- socktop_agent/Cargo.toml | 4 ++-- socktop_agent/src/main.rs | 6 ++++++ socktop_agent/tests/tls_cert_creation.rs | 4 +--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5c542cb..e9ecde5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2060,7 +2060,7 @@ dependencies = [ [[package]] name = "socktop_agent" -version = "1.50.1" +version = "1.50.2" dependencies = [ "anyhow", "assert_cmd", diff --git a/socktop_agent/Cargo.toml b/socktop_agent/Cargo.toml index 7244cdc..8b78d18 100644 --- a/socktop_agent/Cargo.toml +++ b/socktop_agent/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "socktop_agent" -version = "1.50.1" +version = "1.50.2" authors = ["Jason Witty "] description = "Socktop agent daemon. Serves host metrics over WebSocket." edition = "2024" @@ -26,7 +26,7 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = tr gfxinfo = "0.1.2" once_cell = "1.19" axum-server = { version = "0.7", features = ["tls-rustls"] } -rustls = "0.23" +rustls = { version = "0.23", features = ["aws-lc-rs"] } rustls-pemfile = "2.1" rcgen = "0.13" anyhow = "1" diff --git a/socktop_agent/src/main.rs b/socktop_agent/src/main.rs index 2933bf9..80a1c2f 100644 --- a/socktop_agent/src/main.rs +++ b/socktop_agent/src/main.rs @@ -30,6 +30,12 @@ fn arg_value(name: &str) -> Option { } fn main() -> anyhow::Result<()> { + // Install rustls crypto provider before any TLS operations + // This is required when using axum-server's tls-rustls feature + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .ok(); // Ignore error if already installed + #[cfg(feature = "logging")] tracing_subscriber::fmt::init(); diff --git a/socktop_agent/tests/tls_cert_creation.rs b/socktop_agent/tests/tls_cert_creation.rs index ca38546..3bab90b 100644 --- a/socktop_agent/tests/tls_cert_creation.rs +++ b/socktop_agent/tests/tls_cert_creation.rs @@ -1,5 +1,3 @@ -use assert_cmd::cargo::cargo_bin; -use assert_cmd::prelude::*; use std::fs; use std::path::PathBuf; use std::process::Command; @@ -18,7 +16,7 @@ fn generates_self_signed_cert_and_key_in_xdg_path() { let xdg = tmpdir.path().to_path_buf(); // Run the agent once with --enableSSL, short timeout so it exits quickly when killed - let mut cmd = Command::new(cargo_bin!("socktop_agent")); + let mut cmd = Command::new(assert_cmd::cargo::cargo_bin!("socktop_agent")); // Bind to an ephemeral port (-p 0) to avoid conflicts/flakes cmd.env("XDG_CONFIG_HOME", &xdg) .arg("--enableSSL")