Skip to content

Commit 2f585fd

Browse files
committed
Fix peer updating
1 parent b770446 commit 2f585fd

3 files changed

Lines changed: 5 additions & 7 deletions

File tree

Sources/MultipeerKit/Internal API/MultipeerConnection.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,17 +120,15 @@ extension MultipeerConnection: MCSessionDelegate {
120120

121121
let handler = invitationCompletionHandlers[peerID]
122122

123-
defer { invitationCompletionHandlers[peerID] = nil }
124-
125123
DispatchQueue.main.async {
126124
switch state {
127125
case .connected:
128126
handler?(.success(peer))
129-
127+
self.invitationCompletionHandlers[peerID] = nil
130128
self.didConnectToPeer?(peer)
131129
case .notConnected:
132130
handler?(.failure(MultipeerError(localizedDescription: "Failed to connect to peer.")))
133-
131+
self.invitationCompletionHandlers[peerID] = nil
134132
self.didDisconnectFromPeer?(peer)
135133
case .connecting:
136134
break

Sources/MultipeerKit/Public API/MultipeerConfiguration.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public struct MultipeerConfiguration {
2020
/// Configures security-related aspects of the multipeer connection.
2121
public struct Security {
2222

23-
public typealias InvitationHandler = (Peer, Data?, (Bool) -> Void) -> Void
23+
public typealias InvitationHandler = (Peer, Data?, @escaping (Bool) -> Void) -> Void
2424

2525
/// An array of information that can be used to identify the peer to other nearby peers.
2626
///

Sources/MultipeerKit/Public API/MultipeerTransceiver.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public final class MultipeerTransceiver {
151151
}
152152

153153
private func handlePeerRemoved(_ peer: Peer) {
154-
guard let idx = availablePeers.firstIndex(of: peer) else { return }
154+
guard let idx = availablePeers.firstIndex(where: { $0.underlyingPeer == peer.underlyingPeer }) else { return }
155155

156156
availablePeers.remove(at: idx)
157157
}
@@ -165,7 +165,7 @@ public final class MultipeerTransceiver {
165165
}
166166

167167
private func setConnected(_ connected: Bool, on peer: Peer) {
168-
guard let idx = availablePeers.firstIndex(of: peer) else { return }
168+
guard let idx = availablePeers.firstIndex(where: { $0.underlyingPeer == peer.underlyingPeer }) else { return }
169169

170170
var mutablePeer = availablePeers[idx]
171171
mutablePeer.isConnected = connected

0 commit comments

Comments
 (0)