aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 40243f1..b9f449a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -58,8 +58,21 @@ fn read_leases(cache: Arc<RwLock<Vec<Lease>>>) -> Result<()> {
});
for entry in dir {
- let file = File::open(entry?.path())?;
- let mut net_leases: Vec<Lease> = serde_json::from_reader(&file)?;
+ let entry = entry?;
+
+ let file = File::open(entry.path())?;
+ let mut net_leases: Vec<Lease> = match serde_json::from_reader(&file) {
+ Ok(v) => v,
+ Err(e) => {
+ println!(
+ "[dnsd] ignore broken lease file {}: {}",
+ entry.path().display(),
+ e
+ );
+
+ continue;
+ }
+ };
leases.append(&mut net_leases);
}