diff --git a/Cargo.toml b/Cargo.toml index 80b359f..71e31a7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,6 +53,7 @@ h3 = { git = "https://github.com/hyperium/h3.git" } h3-quinn = { git = "https://github.com/hyperium/h3.git" } bytes = "1.1.0" mimalloc-rust = "0.2.0" +thiserror = "1.0.31" [dev-dependencies] diff --git a/src/backend.rs b/src/backend.rs index 4cbbdee..8d58d8c 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -18,7 +18,7 @@ pub type ServerNameLC = Vec; pub type PathNameLC = Vec; pub struct Backends { - pub apps: HashMap, // TODO: hyper::uriで抜いたhostで引っ掛ける。Stringでいいのか? + pub apps: HashMap, // hyper::uriで抜いたhostで引っ掛ける pub default_server_name: Option, // for plaintext http } @@ -35,7 +35,7 @@ pub struct Backend { #[derive(Debug, Clone)] pub struct ReverseProxy { - pub upstream: HashMap, + pub upstream: HashMap, // TODO: HashMapでいいのかは疑問。max_by_keyでlongest prefix matchしてるのも無駄っぽいが。。。 } impl ReverseProxy { @@ -182,12 +182,7 @@ impl Backend { ) })?; reader.set_position(0); - let mut rsa_keys = rustls_pemfile::rsa_private_keys(&mut reader).map_err(|_| { - io::Error::new( - io::ErrorKind::InvalidInput, - "Unable to parse the certificates private keys (RSA)", - ) - })?; + let mut rsa_keys = rustls_pemfile::rsa_private_keys(&mut reader)?; let mut keys = pkcs8_keys; keys.append(&mut rsa_keys); if keys.is_empty() { diff --git a/src/config/toml.rs b/src/config/toml.rs index b7ecb7b..784da8c 100644 --- a/src/config/toml.rs +++ b/src/config/toml.rs @@ -64,13 +64,8 @@ impl UpstreamParams { impl ConfigToml { pub fn new(config_file: &str) -> Result { - let config_str = if let Ok(s) = fs::read_to_string(config_file) { - s - } else { - bail!("Failed to read config file"); - }; - let parsed: Result = toml::from_str(&config_str) - .map_err(|e: toml::de::Error| anyhow!("Failed to parse toml config: {:?}", e)); - parsed + let config_str = fs::read_to_string(config_file).context("Failed to read config file")?; + + toml::from_str(&config_str).context("Failed to parse toml config") } } diff --git a/src/error.rs b/src/error.rs index 6ac9a6b..4b30b2d 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1 +1,12 @@ -pub use anyhow::{anyhow, bail, ensure, Context, Error, Result}; +pub use anyhow::{anyhow, bail, ensure, Context, Result}; +// use thiserror::Error; + +// #[allow(clippy::enum_variant_names)] +// #[derive(Debug, Error)] +// pub enum RpxyError { +// // IoError, +// #[error("ConfigError: {0}")] +// ConfigError(String), +// // ConnectionError, +// // HttpError, +// }