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