add stop
This commit is contained in:
parent
1512e99d87
commit
20ef0ca985
@ -117,6 +117,18 @@ public class SDLContext: @unchecked Sendable {
|
|||||||
self.monitor.start()
|
self.monitor.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func stop() async {
|
||||||
|
self.superCancel?.cancel()
|
||||||
|
self.superClient = nil
|
||||||
|
|
||||||
|
self.udpCancel?.cancel()
|
||||||
|
self.udpHole = nil
|
||||||
|
|
||||||
|
self.readTask?.cancel()
|
||||||
|
|
||||||
|
exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
private func startSuperClient() async throws {
|
private func startSuperClient() async throws {
|
||||||
self.superClient = SDLSuperClient(host: config.superHost, port: config.superPort)
|
self.superClient = SDLSuperClient(host: config.superHost, port: config.superPort)
|
||||||
// 建立super的绑定关系
|
// 建立super的绑定关系
|
||||||
@ -379,6 +391,8 @@ public class SDLContext: @unchecked Sendable {
|
|||||||
networkSettings.dnsSettings = NEDNSSettings(servers: ["8.8.8.8", "114.114.114.114"])
|
networkSettings.dnsSettings = NEDNSSettings(servers: ["8.8.8.8", "114.114.114.114"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDLLogger.log("[SDLContext] Tun started at network ip: \(netAddress.ipAddress), mask: \(netAddress.maskAddress)", level: .debug)
|
||||||
|
|
||||||
let ipv4Settings = NEIPv4Settings(addresses: [netAddress.ipAddress], subnetMasks: [netAddress.maskAddress])
|
let ipv4Settings = NEIPv4Settings(addresses: [netAddress.ipAddress], subnetMasks: [netAddress.maskAddress])
|
||||||
// 设置路由表
|
// 设置路由表
|
||||||
//NEIPv4Route.default()
|
//NEIPv4Route.default()
|
||||||
@ -391,8 +405,9 @@ public class SDLContext: @unchecked Sendable {
|
|||||||
try await self.provider.setTunnelNetworkSettings(networkSettings)
|
try await self.provider.setTunnelNetworkSettings(networkSettings)
|
||||||
|
|
||||||
await self.holerManager.cleanup()
|
await self.holerManager.cleanup()
|
||||||
|
|
||||||
self.startReader()
|
self.startReader()
|
||||||
|
|
||||||
|
SDLLogger.log("[SDLContext] setTunnelNetworkSettings success, start read packet", level: .debug)
|
||||||
} catch let err {
|
} catch let err {
|
||||||
SDLLogger.log("[SDLContext] setTunnelNetworkSettings get error: \(err)", level: .error)
|
SDLLogger.log("[SDLContext] setTunnelNetworkSettings get error: \(err)", level: .error)
|
||||||
exit(-1)
|
exit(-1)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user