chore: deps hot_reload

This commit is contained in:
Jun Kurihara 2025-06-30 18:26:56 +09:00
commit 0d4234b620
No known key found for this signature in database
GPG key ID: 9C5AF0A526862FEF
10 changed files with 17 additions and 19 deletions

12
Cargo.lock generated
View file

@ -1088,9 +1088,9 @@ dependencies = [
[[package]] [[package]]
name = "hot_reload" name = "hot_reload"
version = "0.1.9" version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75c6b9b663cacaa5655b282218152476f7d38f6dc29b0d9b93a7f5fd73209b6a" checksum = "469bdabdc9436358811cd8fa2d35b3a0fc60534aca57979b931b9f5f9551ce16"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
@ -2093,7 +2093,7 @@ dependencies = [
[[package]] [[package]]
name = "rpxy" name = "rpxy"
version = "0.10.0" version = "0.10.1"
dependencies = [ dependencies = [
"ahash", "ahash",
"anyhow", "anyhow",
@ -2117,7 +2117,7 @@ dependencies = [
[[package]] [[package]]
name = "rpxy-acme" name = "rpxy-acme"
version = "0.10.0" version = "0.10.1"
dependencies = [ dependencies = [
"ahash", "ahash",
"async-trait", "async-trait",
@ -2138,7 +2138,7 @@ dependencies = [
[[package]] [[package]]
name = "rpxy-certs" name = "rpxy-certs"
version = "0.10.0" version = "0.10.1"
dependencies = [ dependencies = [
"ahash", "ahash",
"async-trait", "async-trait",
@ -2156,7 +2156,7 @@ dependencies = [
[[package]] [[package]]
name = "rpxy-lib" name = "rpxy-lib"
version = "0.10.0" version = "0.10.1"
dependencies = [ dependencies = [
"ahash", "ahash",
"anyhow", "anyhow",

View file

@ -1,5 +1,5 @@
[workspace.package] [workspace.package]
version = "0.10.0" version = "0.10.1"
authors = ["Jun Kurihara"] authors = ["Jun Kurihara"]
homepage = "https://github.com/junkurihara/rust-rpxy" homepage = "https://github.com/junkurihara/rust-rpxy"
repository = "https://github.com/junkurihara/rust-rpxy" repository = "https://github.com/junkurihara/rust-rpxy"

View file

@ -61,7 +61,7 @@ futures-util = { version = "0.3.31", default-features = false }
# config # config
clap = { version = "4.5.40", features = ["std", "cargo", "wrap_help"] } clap = { version = "4.5.40", features = ["std", "cargo", "wrap_help"] }
toml = { version = "0.8.23", default-features = false, features = ["parse"] } toml = { version = "0.8.23", default-features = false, features = ["parse"] }
hot_reload = "0.1.9" hot_reload = "0.2.0"
serde_ignored = "0.1.12" serde_ignored = "0.1.12"
# logging # logging

View file

@ -33,10 +33,9 @@ fn main() {
init_logger(parsed_opts.log_dir_path.as_deref()); init_logger(parsed_opts.log_dir_path.as_deref());
let (config_service, config_rx) = ReloaderService::<ConfigTomlReloader, ConfigToml, String>::new( let (config_service, config_rx) = ReloaderService::<ConfigTomlReloader, ConfigToml, String>::with_delay(
&parsed_opts.config_file_path, &parsed_opts.config_file_path,
CONFIG_WATCH_DELAY_SECS, CONFIG_WATCH_DELAY_SECS,
false,
) )
.await .await
.unwrap(); .unwrap();
@ -256,7 +255,7 @@ async fn rpxy_service(
} }
/* ---------- */ /* ---------- */
_ = config_rx.changed() => { _ = config_rx.changed() => {
let Some(new_config_toml) = config_rx.borrow().clone() else { let Some(new_config_toml) = config_rx.get() else {
error!("Something wrong in config reloader receiver"); error!("Something wrong in config reloader receiver");
return Err(anyhow!("Something wrong in config reloader receiver")); return Err(anyhow!("Something wrong in config reloader receiver"));
}; };

View file

@ -20,7 +20,7 @@ ahash = { version = "0.8.12" }
tracing = { version = "0.1.41" } tracing = { version = "0.1.41" }
derive_builder = { version = "0.20.2" } derive_builder = { version = "0.20.2" }
thiserror = { version = "2.0.12" } thiserror = { version = "2.0.12" }
hot_reload = { version = "0.1.9" } hot_reload = { version = "0.2.0" }
async-trait = { version = "0.1.88" } async-trait = { version = "0.1.88" }
rustls = { version = "0.23.28", default-features = false, features = [ rustls = { version = "0.23.28", default-features = false, features = [
"std", "std",

View file

@ -27,8 +27,6 @@ pub use crate::{
// Constants // Constants
/// Default delay in seconds to watch certificates /// Default delay in seconds to watch certificates
const DEFAULT_CERTS_WATCH_DELAY_SECS: u32 = 60; const DEFAULT_CERTS_WATCH_DELAY_SECS: u32 = 60;
/// Load certificates only when updated
const LOAD_CERTS_ONLY_WHEN_UPDATED: bool = true;
/// Result type inner of certificate reloader service /// Result type inner of certificate reloader service
type ReloaderServiceResultInner = ( type ReloaderServiceResultInner = (
@ -62,6 +60,7 @@ where
let certs_watch_period = certs_watch_period.unwrap_or(DEFAULT_CERTS_WATCH_DELAY_SECS); let certs_watch_period = certs_watch_period.unwrap_or(DEFAULT_CERTS_WATCH_DELAY_SECS);
let (cert_reloader_service, cert_reloader_rx) = let (cert_reloader_service, cert_reloader_rx) =
ReloaderService::<CryptoReloader, ServerCryptoBase>::new(&source, certs_watch_period, !LOAD_CERTS_ONLY_WHEN_UPDATED).await?; ReloaderService::<CryptoReloader, ServerCryptoBase>::with_delay(&source, certs_watch_period).await?;
Ok((cert_reloader_service, cert_reloader_rx)) Ok((cert_reloader_service, cert_reloader_rx))
} }

View file

@ -79,7 +79,7 @@ hyper-rustls = { version = "0.27.7", default-features = false, features = [
# tls and cert management for server # tls and cert management for server
rpxy-certs = { path = "../rpxy-certs/", default-features = false } rpxy-certs = { path = "../rpxy-certs/", default-features = false }
hot_reload = "0.1.9" hot_reload = "0.2.0"
rustls = { version = "0.23.28", default-features = false } rustls = { version = "0.23.28", default-features = false }
rustls-post-quantum = { version = "0.2.2", optional = true } rustls-post-quantum = { version = "0.2.2", optional = true }
tokio-rustls = { version = "0.26.2", features = ["early-data"] } tokio-rustls = { version = "0.26.2", features = ["early-data"] }

View file

@ -313,7 +313,7 @@ where
error!("Reloader is broken"); error!("Reloader is broken");
break; break;
} }
let server_crypto_base = server_crypto_rx.borrow().clone().unwrap(); let server_crypto_base = server_crypto_rx.get().unwrap();
let Some(server_config): Option<Arc<ServerCrypto>> = (&server_crypto_base).try_into().ok() else { let Some(server_config): Option<Arc<ServerCrypto>> = (&server_crypto_base).try_into().ok() else {
error!("Failed to update server crypto"); error!("Failed to update server crypto");
break; break;

View file

@ -102,7 +102,7 @@ where
error!("Reloader is broken"); error!("Reloader is broken");
break; break;
} }
let cert_keys_map = server_crypto_rx.borrow().clone().unwrap(); let cert_keys_map = server_crypto_rx.get().unwrap();
server_crypto = (&cert_keys_map).try_into().ok(); server_crypto = (&cert_keys_map).try_into().ok();
let Some(inner) = server_crypto.clone() else { let Some(inner) = server_crypto.clone() else {

View file

@ -52,7 +52,7 @@ where
/// Receive server crypto from reloader /// Receive server crypto from reloader
fn receive_server_crypto(&self, server_crypto_rx: ReloaderReceiver<ServerCryptoBase>) -> RpxyResult<s2n_quic_rustls::Server> { fn receive_server_crypto(&self, server_crypto_rx: ReloaderReceiver<ServerCryptoBase>) -> RpxyResult<s2n_quic_rustls::Server> {
let cert_keys_map = server_crypto_rx.borrow().clone().ok_or_else(|| { let cert_keys_map = server_crypto_rx.get().ok_or_else(|| {
error!("Reloader is broken"); error!("Reloader is broken");
RpxyError::CertificateReloadError(anyhow!("Reloader is broken").into()) RpxyError::CertificateReloadError(anyhow!("Reloader is broken").into())
})?; })?;