From 2dbe945f3e3ad31606fdd4de5cd7e230e5fba8ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6ttger?= Date: Sun, 8 Mar 2026 16:15:21 +0100 Subject: [PATCH] Better out-of-frame detection --- .../Connection/OutboundNearbyConnection.swift | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/NearbyShare/Connection/OutboundNearbyConnection.swift b/NearbyShare/Connection/OutboundNearbyConnection.swift index 8e2fa96..9a76cd6 100644 --- a/NearbyShare/Connection/OutboundNearbyConnection.swift +++ b/NearbyShare/Connection/OutboundNearbyConnection.swift @@ -157,20 +157,10 @@ class OutboundNearbyConnection: NearbyConnection { return } if frame.hasV1, frame.v1.hasType { - if frame.v1.type == .progressUpdate { + if frame.v1.type == .progressUpdate || frame.v1.type == .response { log("[OutboundNearbyConnection \(self.id)] Ignoring duplicate/intermediate transfer setup frame \(frame.v1.type) while waiting for pairedKeyEncryption.") return } - if frame.v1.type == .response { - let status = frame.v1.connectionResponse.status - if status == .accept { - log("[OutboundNearbyConnection \(self.id)] Ignoring out-of-order accept response while waiting for pairedKeyEncryption.") - return - } - log("[OutboundNearbyConnection \(self.id)] Received terminal response \(status) while waiting for pairedKeyEncryption.") - try processConsent(frame: frame) - return - } } throw NearbyError.requiredFieldMissing("sharingNearbyFrame.v1.pairedKeyEncryption") case .sentPairedKeyResult: @@ -179,20 +169,10 @@ class OutboundNearbyConnection: NearbyConnection { return } if frame.hasV1, frame.v1.hasType { - if frame.v1.type == .pairedKeyEncryption || frame.v1.type == .progressUpdate { + if frame.v1.type == .pairedKeyEncryption || frame.v1.type == .progressUpdate || frame.v1.type == .response { log("[OutboundNearbyConnection \(self.id)] Ignoring duplicate/intermediate transfer setup frame \(frame.v1.type) while waiting for pairedKeyResult.") return } - if frame.v1.type == .response { - let status = frame.v1.connectionResponse.status - if status == .accept { - log("[OutboundNearbyConnection \(self.id)] Ignoring out-of-order accept response while waiting for pairedKeyResult.") - return - } - log("[OutboundNearbyConnection \(self.id)] Received terminal response \(status) while waiting for pairedKeyResult.") - try processConsent(frame: frame) - return - } } throw NearbyError.requiredFieldMissing("sharingNearbyFrame.v1.pairedKeyResult") case .sentIntroduction: