aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-11-06 13:46:30 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-11-06 13:46:30 +0100
commita72bce485f41c52ff434c3320541b2f7a9e4e0b1 (patch)
treead60ef567432b057761e762f1df578c1e331e242
parent08ddbad014fac4da6b9ce651bd3d07963358dbf6 (diff)
ensure that address updates overwrite the file instead of appending to it
-rw-r--r--src/main.rs9
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 {