fix context
This commit is contained in:
parent
9cafe1aa57
commit
f801344370
@ -250,7 +250,7 @@ actor SDLContextActor {
|
||||
}
|
||||
|
||||
// 处理和super的协商问题
|
||||
private func handleUDPHoleReady() async {
|
||||
private func handleUDPHoleReady() {
|
||||
guard let udpHole = self.udpHole else {
|
||||
return
|
||||
}
|
||||
@ -260,6 +260,7 @@ actor SDLContextActor {
|
||||
|
||||
// 开始探测nat的类型
|
||||
Task.detached {
|
||||
await Task.yield()
|
||||
if let natType = await self.proberActor?.probeNatType() {
|
||||
await self.setNatType(natType: natType)
|
||||
SDLLogger.shared.log("[SDLContext] nat_type is: \(natType)")
|
||||
@ -267,21 +268,7 @@ actor SDLContextActor {
|
||||
}
|
||||
|
||||
// 注册
|
||||
var registerSuper = SDLRegisterSuper()
|
||||
registerSuper.pktID = 0
|
||||
registerSuper.clientID = self.config.clientId
|
||||
registerSuper.networkID = self.config.networkAddress.networkId
|
||||
registerSuper.mac = self.config.networkAddress.mac
|
||||
registerSuper.ip = self.config.networkAddress.ip
|
||||
registerSuper.maskLen = UInt32(self.config.networkAddress.maskLen)
|
||||
registerSuper.hostname = self.config.hostname
|
||||
registerSuper.pubKey = self.rsaCipher.pubKey
|
||||
registerSuper.accessToken = self.config.accessToken
|
||||
|
||||
if let registerSuperData = try? registerSuper.serializedData() {
|
||||
SDLLogger.shared.log("[SDLContext] will send register super")
|
||||
self.udpHole?.send(type: .registerSuper, data: registerSuperData, remoteAddress: self.config.stunSocketAddress)
|
||||
}
|
||||
self.doRegisterSuper()
|
||||
}
|
||||
|
||||
private func sendStunRequest() {
|
||||
@ -344,6 +331,7 @@ actor SDLContextActor {
|
||||
private func handleEvent(event: SDLEvent) throws {
|
||||
switch event {
|
||||
case .dropMacs(let dropMacsEvent):
|
||||
// TODO
|
||||
SDLLogger.shared.log("[SDLContext] drop macs", level: .info)
|
||||
()
|
||||
case .natChanged(let natChangedEvent):
|
||||
@ -362,8 +350,8 @@ actor SDLContextActor {
|
||||
self.udpHole?.send(type: .register, data: try register.serializedData(), remoteAddress: remoteAddress)
|
||||
}
|
||||
case .refreshAuth(let refreshAuthEvent):
|
||||
SDLLogger.shared.log("[SDLContext] refresh auth", level: .info)
|
||||
()
|
||||
SDLLogger.shared.log("[SDLContext] refresh auth: \(refreshAuthEvent.networkID)", level: .info)
|
||||
self.doRegisterSuper()
|
||||
case .networkShutdown(let shutdownEvent):
|
||||
let alertNotice = NoticeMessage.alert(alert: shutdownEvent.message)
|
||||
self.noticeClient?.send(data: alertNotice)
|
||||
@ -371,6 +359,25 @@ actor SDLContextActor {
|
||||
}
|
||||
}
|
||||
|
||||
private func doRegisterSuper() {
|
||||
// 注册
|
||||
var registerSuper = SDLRegisterSuper()
|
||||
registerSuper.pktID = 0
|
||||
registerSuper.clientID = self.config.clientId
|
||||
registerSuper.networkID = self.config.networkAddress.networkId
|
||||
registerSuper.mac = self.config.networkAddress.mac
|
||||
registerSuper.ip = self.config.networkAddress.ip
|
||||
registerSuper.maskLen = UInt32(self.config.networkAddress.maskLen)
|
||||
registerSuper.hostname = self.config.hostname
|
||||
registerSuper.pubKey = self.rsaCipher.pubKey
|
||||
registerSuper.accessToken = self.config.accessToken
|
||||
|
||||
if let registerSuperData = try? registerSuper.serializedData() {
|
||||
SDLLogger.shared.log("[SDLContext] will send register super")
|
||||
self.udpHole?.send(type: .registerSuper, data: registerSuperData, remoteAddress: self.config.stunSocketAddress)
|
||||
}
|
||||
}
|
||||
|
||||
private func handleRegister(remoteAddress: SocketAddress, register: SDLRegister) throws {
|
||||
let networkAddr = config.networkAddress
|
||||
SDLLogger.shared.log("register packet: \(register), network_address: \(networkAddr)", level: .debug)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user