Log incomplete BLE frames for debugging

This commit is contained in:
jack
2025-10-14 22:21:17 +02:00
parent de7a496af9
commit eccec2f27d
+2
View File
@@ -65,12 +65,14 @@ struct NotificationStreamAssembler {
if hasSignature { frameLength += BinaryProtocol.signatureSize } if hasSignature { frameLength += BinaryProtocol.signatureSize }
guard frameLength > 0, frameLength <= maxFrameLength else { guard frameLength > 0, frameLength <= maxFrameLength else {
SecureLogger.error("❌ Notification frame length \(frameLength) invalid (cap=\(maxFrameLength)); resetting stream", category: .session)
buffer.removeAll() buffer.removeAll()
reset = true reset = true
break break
} }
if buffer.count < frameLength { if buffer.count < frameLength {
SecureLogger.warning("⚠️ Incomplete BLE frame: have \(buffer.count)B need \(frameLength)B; scanning for next header", category: .session)
if let nextStart = buffer.dropFirst().firstIndex(where: { $0 == 1 || $0 == 2 }) { if let nextStart = buffer.dropFirst().firstIndex(where: { $0 == 1 || $0 == 2 }) {
let dropCount = buffer.distance(from: buffer.startIndex, to: nextStart) let dropCount = buffer.distance(from: buffer.startIndex, to: nextStart)
if dropCount > 0 { if dropCount > 0 {