aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock6
-rw-r--r--Cargo.toml4
-rw-r--r--src/main.rs17
3 files changed, 20 insertions, 7 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 94c7f14..b6fddd2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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",
diff --git a/Cargo.toml b/Cargo.toml
index 14b9f8c..2e1976e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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);
}