diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-18 18:16:19 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-18 18:16:19 +0100 |
commit | 985f6285dd7cd3ee233ccd1c9d057e8bdc359c11 (patch) | |
tree | 5e437b55c1bd0968dc5eec776da4156a4902a16e /src | |
parent | 8da64d5b9fd53d99932c737c3043da67c0d31c87 (diff) |
inform dhcp6 of time sync (SIGUSR2)
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index c954a04..72ba28a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,7 @@ use hickory_resolver::AsyncResolver; use nix::sys::time::TimeSpec; use nix::time::ClockId; use rsdsl_netlinklib::Connection; +use sysinfo::{ProcessExt, Signal, System, SystemExt}; use thiserror::Error; const EPOCH_OFFSET: i64 = 2208988800; @@ -71,7 +72,13 @@ async fn main() -> Result<()> { loop { tokio::select! { _ = resync.tick() => match sync_time(NTP_SERVER).await { - Ok(_) => resync = tokio::time::interval(INTERVAL), + Ok(_) => { + resync = tokio::time::interval(INTERVAL); + + for dhcp6 in System::new_all().processes_by_exact_name("rsdsl_dhcp6") { + dhcp6.kill_with(Signal::User2); + } + } Err(e) => eprintln!("can't synchronize system time: {}", e), }, _ = sigterm.recv() => { |