From 46997ab9fc67e5dd05f56dd14f12fe584e1b1be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6ttger?= Date: Fri, 30 May 2025 20:55:33 +0200 Subject: [PATCH] Add check if connection already closed --- NearbyShare/NearbyConnection.swift | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/NearbyShare/NearbyConnection.swift b/NearbyShare/NearbyConnection.swift index 7b8ab2a..2cf2463 100644 --- a/NearbyShare/NearbyConnection.swift +++ b/NearbyShare/NearbyConnection.swift @@ -52,20 +52,25 @@ class NearbyConnection { func start() { connection.stateUpdateHandler = { state in - if case .ready = state { - self.connectionReady() - self.receiveFrameAsync() - } else if case let .failed(err) = state { - self.lastError = err - log("Error opening socket: \(err)") - - if err == .posix(.ENOTCONN) { - ConnectionFailureTracker.shared.recordFailure { - NearbyConnectionManager.shared.mainAppDelegate?.showFirewallAlert() + if !self.connectionClosed { + if case .ready = state { + self.connectionReady() + self.receiveFrameAsync() + } else if case let .failed(err) = state { + self.lastError = err + log("Error opening socket: \(err)") + + if err == .posix(.ENOTCONN) { + ConnectionFailureTracker.shared.recordFailure { + NearbyConnectionManager.shared.mainAppDelegate?.showFirewallAlert() + } } + + self.handleConnectionClosure() } - - self.handleConnectionClosure() + } + else { + log("Connection already closed, ignoring state update: \(state)") } } // connection.start(queue: .global(qos: .utility))