diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-06 13:46:30 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-06 13:46:30 +0100 |
commit | a72bce485f41c52ff434c3320541b2f7a9e4e0b1 (patch) | |
tree | ad60ef567432b057761e762f1df578c1e331e242 | |
parent | 08ddbad014fac4da6b9ce651bd3d07963358dbf6 (diff) |
ensure that address updates overwrite the file instead of appending to it
-rw-r--r-- | src/main.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index c62e49a..4ec567d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use std::fs::{File, OpenOptions}; +use std::io::Seek; use tokio::sync::mpsc; @@ -48,7 +49,11 @@ async fn main() -> Result<()> { tokio::select! { result = v4_rx.recv() => { ds_config.v4 = result.ok_or(Error::V4ChannelClosed)?; + + ds_config_file.rewind()?; serde_json::to_writer_pretty(&mut ds_config_file, &ds_config)?; + ds_config_file.sync_all()?; + inform(); if let Some(v4) = ds_config.v4 { @@ -59,7 +64,11 @@ async fn main() -> Result<()> { } result = v6_rx.recv() => { ds_config.v6 = result.ok_or(Error::V6ChannelClosed)?; + + ds_config_file.rewind()?; serde_json::to_writer_pretty(&mut ds_config_file, &ds_config)?; + ds_config_file.sync_all()?; + inform(); if let Some(v6) = ds_config.v6 { |