From e1924e1919a44fc1b3439754e16420ba1c41c2f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6ttger?= Date: Sun, 8 Mar 2026 14:40:16 +0100 Subject: [PATCH] Improve ACK logic --- NearbyShare/Connection/NearbyConnection.swift | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/NearbyShare/Connection/NearbyConnection.swift b/NearbyShare/Connection/NearbyConnection.swift index ac23fe8..97fff66 100644 --- a/NearbyShare/Connection/NearbyConnection.swift +++ b/NearbyShare/Connection/NearbyConnection.swift @@ -442,7 +442,15 @@ class NearbyConnection { } } else if offlineFrame.hasV1, offlineFrame.v1.hasType, case .keepAlive = offlineFrame.v1.type { - sendKeepAlive(ack: true) + if offlineFrame.v1.hasKeepAlive { + let keepAlive = offlineFrame.v1.keepAlive + if !keepAlive.hasAck || !keepAlive.ack { + sendKeepAlive(ack: true) + } + } else { + // Older peers can omit the keepAlive payload; default to ACK reply. + sendKeepAlive(ack: true) + } } else { if offlineFrame.hasV1, offlineFrame.v1.hasType, offlineFrame.v1.type == .bandwidthUpgradeRetry {