fix: Improve error handling for reflector list loading
Improves error handling when the reflector list file is not found, providing more context about the failure.
This commit is contained in:
1 file changed
+8
-2
+8
-2
@@ -1,7 +1,7 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use log::Level;
|
||||||
#[cfg(feature = "uci")]
|
#[cfg(feature = "uci")]
|
||||||
use log::warn;
|
use log::warn;
|
||||||
use log::Level;
|
|
||||||
#[cfg(feature = "uci")]
|
#[cfg(feature = "uci")]
|
||||||
use rust_uci::Uci;
|
use rust_uci::Uci;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
@@ -21,6 +21,8 @@ pub enum ConfigError {
|
|||||||
ParseError(String),
|
ParseError(String),
|
||||||
#[error("No config value found for key: `{0}`")]
|
#[error("No config value found for key: `{0}`")]
|
||||||
MissingValue(String),
|
MissingValue(String),
|
||||||
|
#[error("Reflector list not found at: {0}")]
|
||||||
|
ReflectorListNotFound(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_lines<P>(filename: P) -> io::Result<io::Lines<io::BufReader<File>>>
|
fn read_lines<P>(filename: P) -> io::Result<io::Lines<io::BufReader<File>>>
|
||||||
@@ -243,7 +245,11 @@ impl Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn load_reflectors(&self) -> Result<Vec<IpAddr>> {
|
pub fn load_reflectors(&self) -> Result<Vec<IpAddr>> {
|
||||||
let lines = read_lines(self.reflector_list_file.clone())?;
|
let lines = read_lines(self.reflector_list_file.clone()).map_err(|e| {
|
||||||
|
ConfigError::ReflectorListNotFound(
|
||||||
|
self.reflector_list_file.clone() + ": " + e.to_string().as_str(),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
|
||||||
let mut reflectors: Vec<IpAddr> = Vec::with_capacity(50);
|
let mut reflectors: Vec<IpAddr> = Vec::with_capacity(50);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user