diff options
-rw-r--r-- | Cargo.lock | 6 | ||||
-rw-r--r-- | Cargo.toml | 4 | ||||
-rw-r--r-- | src/main.rs | 17 |
3 files changed, 20 insertions, 7 deletions
@@ -645,8 +645,8 @@ dependencies = [ [[package]] name = "rsdsl_dhcp4d" -version = "0.1.2" -source = "git+https://github.com/rsdsl/dhcp4d.git#88d3ed503412fb909545d7d606b312daa470c880" +version = "0.1.3" +source = "git+https://github.com/rsdsl/dhcp4d.git#8f420dacf26870b995874c34bb807bc89e589411" dependencies = [ "dhcproto", "ipnet", @@ -663,7 +663,7 @@ dependencies = [ [[package]] name = "rsdsl_dnsd" -version = "0.1.1" +version = "0.1.2" dependencies = [ "bytes", "dns-message-parser", @@ -1,6 +1,6 @@ [package] name = "rsdsl_dnsd" -version = "0.1.1" +version = "0.1.2" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -9,6 +9,6 @@ edition = "2021" bytes = "1.4.0" dns-message-parser = "0.7.0" notify = "5.1.0" -rsdsl_dhcp4d = { git = "https://github.com/rsdsl/dhcp4d.git", version = "0.1.2" } +rsdsl_dhcp4d = { git = "https://github.com/rsdsl/dhcp4d.git", version = "0.1.3" } serde_json = "1.0" thiserror = "1.0" 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); } |