diff --git a/Cargo.lock b/Cargo.lock index 7f9c6bd..5ac26f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -185,9 +185,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.11" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4730490333d58093109dc02c23174c3f4d490998c3fed3cc8e82d57afedb9cf" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "shlex", ] diff --git a/flake-modules/tests.nix b/flake-modules/tests.nix index 45fc5ff..5f0feef 100644 --- a/flake-modules/tests.nix +++ b/flake-modules/tests.nix @@ -237,9 +237,9 @@ if IPV4 and IPV6: update_records("127.0.0.1", domain="test", ipv4="1.2.3.4", ipv6="::1234") elif IPV4: - update_records("127.0.0.1", ipv4="1.2.3.4", ipv6="") + update_records("127.0.0.1", ipv4="1.2.3.4") elif IPV6: - update_records("[::1]", ipv4="", ipv6="::1234") + update_records("[::1]", ipv6="::1234") for domain in DYNAMIC_DOMAINS: if IPV4: diff --git a/flake.lock b/flake.lock index 5314233..80c565d 100644 --- a/flake.lock +++ b/flake.lock @@ -37,11 +37,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738142207, - "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=", + "lastModified": 1738021509, + "narHash": "sha256-JNUiceGsr7cVBUQxLBF1ILCe99E0qLxsVuet6GsZUuw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9d3ae807ebd2981d593cddd0080856873139aa40", + "rev": "9db269672dbdbb519e0bd3ea24f01506c135e46f", "type": "github" }, "original": { diff --git a/src/main.rs b/src/main.rs index 035b4ba..d522390 100644 --- a/src/main.rs +++ b/src/main.rs @@ -414,24 +414,6 @@ fn main() -> Result<()> { .wrap_err("failed to run main loop") } -/// Serde deserialization decorator to map empty Strings to None, -/// -/// Adapted from: -fn empty_string_as_none<'de, D, T>(de: D) -> Result, D::Error> -where - D: serde::Deserializer<'de>, - T: std::str::FromStr, - T::Err: std::fmt::Display, -{ - use serde::Deserialize; - - let opt = Option::<&'de str>::deserialize(de)?; - match opt { - None | Some("") => Ok(None), - Some(s) => s.parse::().map_err(serde::de::Error::custom).map(Some), - } -} - #[derive(Debug, serde::Deserialize)] #[serde(deny_unknown_fields)] struct FritzBoxUpdateParams { @@ -440,10 +422,10 @@ struct FritzBoxUpdateParams { #[serde(default)] domain: Option, /// IPv4 address for the domain - #[serde(default, deserialize_with = "empty_string_as_none")] + #[serde(default)] ipv4: Option, /// IPv6 address for the domain - #[serde(default, deserialize_with = "empty_string_as_none")] + #[serde(default)] ipv6: Option, /// IPv6 prefix for the home network #[allow(unused)]