fix
This commit is contained in:
parent
7cf9d1afc1
commit
df7753cda7
@ -48,6 +48,7 @@ actor SDLContextActor {
|
||||
private var udpHole: SDLUDPHole?
|
||||
private var udpHoleWorkers: [Task<Void, Never>]?
|
||||
private var udpHoleLocalAddress: SocketAddress?
|
||||
|
||||
private var udpHoleV6: SDLUDPHoleV6?
|
||||
private var udpHoleV6Workers: [Task<Void, Never>]?
|
||||
private var udpHoleV6LocalAddress: SocketAddress?
|
||||
@ -347,22 +348,22 @@ actor SDLContextActor {
|
||||
private func startUDPHoleV6() async throws -> SDLUDPHoleV6 {
|
||||
self.udpHoleV6Workers?.forEach {$0.cancel()}
|
||||
self.udpHoleV6Workers = nil
|
||||
|
||||
|
||||
// 启动udp服务器
|
||||
let udpHoleV6 = try SDLUDPHoleV6()
|
||||
let localAddress = try udpHoleV6.start()
|
||||
SDLLogger.log("[SDLContext] udpHoleV6 started, on address: \(localAddress)")
|
||||
|
||||
|
||||
// 处理消息流
|
||||
let messageStream = udpHoleV6.messageStream
|
||||
let messageTask = Task.detached {
|
||||
await self.consumeUDPHoleMessages(stream: messageStream, localAddress: localAddress, source: .v6)
|
||||
}
|
||||
|
||||
|
||||
self.udpHoleV6 = udpHoleV6
|
||||
self.udpHoleV6LocalAddress = localAddress
|
||||
self.udpHoleV6Workers = [messageTask]
|
||||
|
||||
|
||||
return udpHoleV6
|
||||
}
|
||||
|
||||
@ -392,16 +393,12 @@ actor SDLContextActor {
|
||||
self.quicClient?.stop()
|
||||
self.quicClient = nil
|
||||
|
||||
if let dnsClient = self.dnsClient {
|
||||
await dnsClient.stop()
|
||||
}
|
||||
await self.dnsClient?.stop()
|
||||
self.dnsWorker?.cancel()
|
||||
self.dnsWorker = nil
|
||||
self.dnsClient = nil
|
||||
|
||||
if let dnsLocalClient = self.dnsLocalClient {
|
||||
await dnsLocalClient.stop()
|
||||
}
|
||||
await self.dnsLocalClient?.stop()
|
||||
self.dnsLocalWorker?.cancel()
|
||||
self.dnsLocalWorker = nil
|
||||
self.dnsLocalClient = nil
|
||||
@ -424,8 +421,7 @@ actor SDLContextActor {
|
||||
self.dataCipher = nil
|
||||
}
|
||||
|
||||
private func publishTunnelEvent(code: Int? = nil,
|
||||
message: String) {
|
||||
private func publishTunnelEvent(code: Int? = nil, message: String) {
|
||||
SDLTunnelAppNotifier.shared.publish(code: code, message: message)
|
||||
}
|
||||
|
||||
@ -849,6 +845,11 @@ extension SDLContextActor {
|
||||
|
||||
private func handleHoleControlMessage(_ message: SDLHoleControlMessage, localAddress: SocketAddress, remoteAddress: SocketAddress, source: UDPHoleKind) async {
|
||||
switch message {
|
||||
case .stunReply(_):
|
||||
guard source == .v4 else {
|
||||
return
|
||||
}
|
||||
SDLLogger.log("[SDLContext] get a stunReply", for: .debug)
|
||||
case .stunProbeReply(let probeReply):
|
||||
guard source == .v4 else {
|
||||
return
|
||||
@ -858,9 +859,6 @@ extension SDLContextActor {
|
||||
try? self.handleRegister(remoteAddress: remoteAddress, register: register)
|
||||
case .registerAck(let registerAck):
|
||||
self.handleRegisterAck(remoteAddress: remoteAddress, registerAck: registerAck)
|
||||
case .stunReply(_):
|
||||
//SDLLogger.shared.log("[SDLContext] get a stunReply: \(stunReply)")
|
||||
()
|
||||
}
|
||||
}
|
||||
|
||||
@ -932,6 +930,7 @@ extension SDLContextActor {
|
||||
()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private extension UInt32 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user