diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-05-19 17:33:38 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-05-19 17:33:38 +0200 |
commit | 8a8201114f94f97cb268b624c4bed7e720aa2e8a (patch) | |
tree | dbcbc338f4843320231279b126231298dadf8aac | |
parent | 6f96de7370bfe742b30a4bdaa48b0d393caf0421 (diff) |
always try to fix broken lease files upon loading one
-rw-r--r-- | src/lease.rs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/lease.rs b/src/lease.rs index d62cf74..d6b2230 100644 --- a/src/lease.rs +++ b/src/lease.rs @@ -270,7 +270,18 @@ impl LeaseFileManager { leases: Vec::new(), }; - match mgr.load() { + Ok(mgr) + } + + fn load_wrapped(&mut self) -> Result<()> { + self.file.rewind()?; + self.leases = serde_json::from_reader(&self.file)?; + + Ok(()) + } + + fn load(&mut self) -> Result<()> { + match self.load_wrapped() { Ok(_) => {} Err(e) => { println!( @@ -282,15 +293,6 @@ impl LeaseFileManager { mgr.save()?; } } - - Ok(mgr) - } - - fn load(&mut self) -> Result<()> { - self.file.rewind()?; - self.leases = serde_json::from_reader(&self.file)?; - - Ok(()) } fn save(&mut self) -> Result<()> { |