aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-05-19 17:33:38 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-05-19 17:33:38 +0200
commit8a8201114f94f97cb268b624c4bed7e720aa2e8a (patch)
treedbcbc338f4843320231279b126231298dadf8aac
parent6f96de7370bfe742b30a4bdaa48b0d393caf0421 (diff)
always try to fix broken lease files upon loading one
-rw-r--r--src/lease.rs22
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<()> {