More robust connection

This commit is contained in:
Leon Böttger committed 2026-04-17 19:34:11 +02:00
1 parent 78cf2309f9
commit 007784c483
3 files changed
+26 -11

No files matched your search

+21 -6
View File
@@ -46,7 +46,7 @@ class NearbyConnection {
private var dataTransferInactivityTimer: DispatchSourceTimer?
private let ackInterval: TimeInterval = 5
private let ackTimeoutInterval: TimeInterval = 30
private let ackTimeoutInterval: TimeInterval = 60
private var lastKeepAliveFrameSent = Date()
// UKEY2-related state
@@ -424,14 +424,29 @@ class NearbyConnection {
let chunk = payloadTransfer.payloadChunk
guard header.hasType, header.hasID else { throw NearbyError.requiredFieldMissing("payloadHeader.type|id") }
guard payloadTransfer.hasPayloadChunk, chunk.hasOffset, chunk.hasFlags else {
if payloadTransfer.controlMessage.event == .payloadCanceled {
if payloadTransfer.hasPayloadChunk {
guard chunk.hasOffset, chunk.hasFlags else {
log("[NearbyConnection \(self.id)] Payload transfer chunk is missing offset or flags. Frame is \(payloadTransfer.debugDescription)")
throw NearbyError.requiredFieldMissing("payloadChunk.offset|flags")
}
} else if payloadTransfer.hasControlMessage || payloadTransfer.packetType == .control {
switch payloadTransfer.controlMessage.event {
case .payloadCanceled:
log("[NearbyConnection \(self.id)] Cancel control frame received.")
throw NearbyError.canceled(reason: .userCanceled)
case .payloadReceivedAck:
// Legacy peers can send ACKs as control events instead of packetType=.payloadAck.
return
case .payloadError:
throw NearbyError.protocolError("Peer reported payload error")
case .unknownEventType:
return
}
log("[NearbyConnection \(self.id)] Payload transfer chunk is missing offset or flags. Frame is \(payloadTransfer.debugDescription)")
} else if payloadTransfer.packetType == .payloadAck {
return
} else {
log("[NearbyConnection \(self.id)] Payload transfer frame missing supported payload content. Frame is \(payloadTransfer.debugDescription)")
throw NearbyError.requiredFieldMissing("payloadChunk.offset|flags")
}
+4 -4
View File
@@ -1773,8 +1773,8 @@
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SHARED_BUILD = 139;
SHARED_VERSION = 3.0.1;
SHARED_BUILD = 142;
SHARED_VERSION = 3.0.3;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -1836,8 +1836,8 @@
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = macosx;
SHARED_BUILD = 139;
SHARED_VERSION = 3.0.1;
SHARED_BUILD = 142;
SHARED_VERSION = 3.0.3;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -52,7 +52,7 @@
"location" : "https://github.com/leonboe1/LUI.git",
"state" : {
"branch" : "main",
"revision" : "7554164b073a5d603e2e7fe92a55159658c67c8e"
"revision" : "939a58567a77fc9c9bb018ab7c4d6a9795c80f15"
}
},
{