fix register逻辑

This commit is contained in:
anlicheng 2026-03-11 12:24:50 +08:00
parent 9747629017
commit d31586f0a4
2 changed files with 4 additions and 3 deletions

View File

@ -161,6 +161,7 @@ actor SDLContextActor {
await self.handleRegisterSuperNak(nakPacket: registerSuperNak) await self.handleRegisterSuperNak(nakPacket: registerSuperNak)
case .peerInfo(let peerInfo): case .peerInfo(let peerInfo):
SDLLogger.shared.log("[SDLContext] peer message: \(peerInfo)") SDLLogger.shared.log("[SDLContext] peer message: \(peerInfo)")
self.puncherActor.handlePeerInfo(using: self.udpHole, peerInfo: peerInfo)
case .event(let event): case .event(let event):
await self.handleEvent(event: event) await self.handleEvent(event: event)
case .policyReponse(let policyResponse): case .policyReponse(let policyResponse):

View File

@ -37,14 +37,14 @@ actor SDLPuncherActor {
Task { Task {
// //
try? await Task.sleep(for: .seconds(5)) try? await Task.sleep(for: cooldown)
self.endCooldown(for: dstMac) self.endCooldown(for: dstMac)
self.removePendingRequest(for: pktId) self.removePendingRequest(for: pktId)
} }
} }
func handlePeerInfo(using udpHole: SDLUDPHole, peerInfo: SDLPeerInfo) async { func handlePeerInfo(using udpHole: SDLUDPHole?, peerInfo: SDLPeerInfo) async {
guard let request = pendingRequests.removeValue(forKey: peerInfo.pktID), guard let udpHole, let request = pendingRequests.removeValue(forKey: peerInfo.pktID),
let remoteAddress = try? await peerInfo.v4Info.socketAddress() else { let remoteAddress = try? await peerInfo.v4Info.socketAddress() else {
return return
} }