mirror of
https://github.com/leonboe1/QuickDrop.git
synced 2026-11-11 02:51:11 +00:00
More robust connection
This commit is contained in:
1 parent
78cf2309f9
commit
007784c483
3 files changed
+26
-11
No files matched your search
@@ -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")
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user