From a6d030494c220e59dfb55108a560f99fdf66e758 Mon Sep 17 00:00:00 2001 From: Luna Yao <40349250+ZnqbuZ@users.noreply.github.com> Date: Thu, 19 Feb 2026 15:04:07 +0100 Subject: [PATCH] client: fix heartbeat initialization --- easytier/src/dns/client.rs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/easytier/src/dns/client.rs b/easytier/src/dns/client.rs index 36b0884a..9838f06b 100644 --- a/easytier/src/dns/client.rs +++ b/easytier/src/dns/client.rs @@ -65,17 +65,18 @@ impl DnsClient { rpc: &mut StandAloneClient, heartbeat: &mut HeartbeatRequest, ) -> anyhow::Result<()> { - let request = if self.mgr.dirty.swap(false, Ordering::Release) { - let snapshot = self.mgr.snapshot(); - heartbeat.digest = snapshot.digest(); - heartbeat.snapshot = Some(snapshot); - heartbeat.clone() - } else { - let snapshot = heartbeat.snapshot.take(); - let request = heartbeat.clone(); - heartbeat.snapshot = snapshot; - request - }; + let request = + if heartbeat.snapshot.is_none() || self.mgr.dirty.swap(false, Ordering::Release) { + let snapshot = self.mgr.snapshot(); + heartbeat.digest = snapshot.digest(); + heartbeat.snapshot = Some(snapshot); + heartbeat.clone() + } else { + let snapshot = heartbeat.snapshot.take(); + let request = heartbeat.clone(); + heartbeat.snapshot = snapshot; + request + }; let client = rpc .scoped_client::>("".to_string())