This commit is contained in:
anlicheng 2025-08-01 12:19:32 +08:00
parent 9a76b61ff0
commit 3ce4e05613

View File

@ -134,23 +134,25 @@ public class SDLContext: @unchecked Sendable {
} }
} }
group.addTask {
//
self.monitorCancel = self.monitor.eventFlow.sink { event in
switch event {
case .changed:
// nat
Task {
self.natType = await SDLNatProber.getNatType(udpHole: self.udpHole, config: self.config)
NSLog("didNetworkPathChanged, nat type is: \(self.natType)")
}
case .unreachable:
NSLog("didNetworkPathUnreachable")
}
}
self.monitor.start()
}
try await group.waitForAll() try await group.waitForAll()
} }
//
self.monitorCancel = self.monitor.eventFlow.sink { event in
switch event {
case .changed:
// nat
Task {
self.natType = await SDLNatProber.getNatType(udpHole: self.udpHole, config: self.config)
NSLog("didNetworkPathChanged, nat type is: \(self.natType)")
}
case .unreachable:
NSLog("didNetworkPathUnreachable")
}
}
self.monitor.start()
} }
public func stop() async { public func stop() async {
@ -376,18 +378,18 @@ public class SDLContext: @unchecked Sendable {
} }
// //
public func flowReportTask() { // public func flowReportTask() {
Task { // Task {
// // //
self.flowTracerCancel = Timer.publish(every: 60.0, on: .main, in: .common).autoconnect() // self.flowTracerCancel = Timer.publish(every: 60.0, on: .main, in: .common).autoconnect()
.sink { _ in // .sink { _ in
Task { // Task {
let (forwardNum, p2pNum, inboundNum) = await self.flowTracer.reset() // let (forwardNum, p2pNum, inboundNum) = await self.flowTracer.reset()
await self.superClient?.flowReport(forwardNum: forwardNum, p2pNum: p2pNum, inboundNum: inboundNum) // await self.superClient?.flowReport(forwardNum: forwardNum, p2pNum: p2pNum, inboundNum: inboundNum)
} // }
} // }
} // }
} // }
// //
private func didNetworkConfigChanged(devAddr: SDLDevAddr, dnsServers: [String]? = nil) async { private func didNetworkConfigChanged(devAddr: SDLDevAddr, dnsServers: [String]? = nil) async {
@ -406,7 +408,7 @@ public class SDLContext: @unchecked Sendable {
} }
NSLog("[SDLContext] Tun started at network ip: \(netAddress.ipAddress), mask: \(netAddress.maskAddress)") NSLog("[SDLContext] Tun started at network ip: \(netAddress.ipAddress), mask: \(netAddress.maskAddress)")
let ipv4Settings = NEIPv4Settings(addresses: [netAddress.ipAddress], subnetMasks: [netAddress.maskAddress]) let ipv4Settings = NEIPv4Settings(addresses: [netAddress.ipAddress], subnetMasks: [netAddress.maskAddress])
// //
//NEIPv4Route.default() //NEIPv4Route.default()