From b5d2a63909f7f5457f2656a119b7a11a0f6385b6 Mon Sep 17 00:00:00 2001 From: soruh Date: Fri, 9 Jun 2023 20:23:33 +0200 Subject: [PATCH] fix start without exisiting cache --- src/ports.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/ports.rs b/src/ports.rs index a754ce2..0c7fe68 100644 --- a/src/ports.rs +++ b/src/ports.rs @@ -283,7 +283,7 @@ impl PortHandler { self.last_update = Some(now); self.change_sender .as_ref() - .expect("PortHandler is missing it's change_sender") + .expect("PortHandler is missing its change_sender") .send(now) .expect("failed to notify cache writer"); } @@ -301,15 +301,9 @@ impl PortHandler { } #[allow(clippy::missing_errors_doc)] - #[instrument(skip(change_sender))] - pub fn load( - cache: &Path, - change_sender: tokio::sync::watch::Sender, - ) -> std::io::Result { + pub fn load(cache: &Path) -> std::io::Result { info!("loading cache"); - let mut cache: Self = serde_json::from_reader(BufReader::new(File::open(cache)?))?; - cache.change_sender = Some(change_sender); - Ok(cache) + Ok(serde_json::from_reader(BufReader::new(File::open(cache)?))?) } #[must_use] @@ -318,10 +312,14 @@ impl PortHandler { path: &Path, change_sender: tokio::sync::watch::Sender, ) -> Self { - Self::load(path, change_sender).unwrap_or_else(|error| { + let mut this = Self::load(path).unwrap_or_else(|error| { error!(?path, %error, "failed to parse cache file"); Self::default() - }) + }); + + this.change_sender = Some(change_sender); + + this } pub fn update_allowed_ports(&mut self, allowed_ports: &AllowedList) {