From fb7479a6f61b0cfb258daeafc995dafd8735ecaf Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Mon, 20 Jul 2026 16:16:07 +0200 Subject: [PATCH] Fixed race condition in link watchdog timing --- RNS/Link.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/RNS/Link.py b/RNS/Link.py index f0b469aa..529af24d 100644 --- a/RNS/Link.py +++ b/RNS/Link.py @@ -750,13 +750,13 @@ class Link: if self.initiator and now >= self.last_keepalive + self.keepalive: self.send_keepalive() - if time.time() >= last_inbound + self.stale_time: + if now >= last_inbound + self.stale_time: sleep_time = self.rtt * self.keepalive_timeout_factor + Link.STALE_GRACE self.status = Link.STALE else: sleep_time = self.keepalive - else: sleep_time = (last_inbound + self.keepalive) - time.time() + else: sleep_time = (last_inbound + self.keepalive) - now elif self.status == Link.STALE: sleep_time = 0.001 @@ -766,9 +766,9 @@ class Link: self.link_closed() - if sleep_time == 0: RNS.log("Warning! Link watchdog sleep time of 0!", RNS.LOG_ERROR) + if sleep_time == 0: RNS.log(f"Link watchdog sleep time of 0 on {self}", RNS.LOG_ERROR) if sleep_time == None or sleep_time < 0: - RNS.log("Timing error! Tearing down link "+str(self)+" now.", RNS.LOG_ERROR) + RNS.log(f"Timing error, tearing down link {self} now", RNS.LOG_ERROR) self.teardown() sleep_time = 0.1