aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-11-19 00:41:47 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-11-19 00:41:47 +0100
commitdb08e29b64a78af5a8c241fee09e73e3a8c631c2 (patch)
treef422b1794810dbbf1272ef28b072fc3236a20147
parent051884ea87b4afd90ab9d7c755688fe911af9451 (diff)
only overwrite interval and dhcp6 lease timestamp on first sync
-rw-r--r--src/main.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index cbcc26d..e72b881 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -72,16 +72,21 @@ async fn main() -> Result<()> {
resync.set_missed_tick_behavior(MissedTickBehavior::Skip);
+ let mut first_sync = true;
loop {
tokio::select! {
_ = resync.tick() => match sync_time(NTP_SERVER).await {
Ok(_) => {
- resync = tokio::time::interval(INTERVAL);
- resync.reset();
- resync.set_missed_tick_behavior(MissedTickBehavior::Skip);
+ if first_sync {
+ resync = tokio::time::interval(INTERVAL);
+ resync.reset();
+ resync.set_missed_tick_behavior(MissedTickBehavior::Skip);
- for dhcp6 in System::new_all().processes_by_exact_name("rsdsl_dhcp6") {
- dhcp6.kill_with(Signal::User2);
+ for dhcp6 in System::new_all().processes_by_exact_name("rsdsl_dhcp6") {
+ dhcp6.kill_with(Signal::User2);
+ }
+
+ first_sync = false;
}
}
Err(e) => eprintln!("can't synchronize system time: {}", e),