fix
This commit is contained in:
parent
5bb971bef3
commit
faebe09da0
@ -44,7 +44,7 @@ public class SDLContext {
|
|||||||
|
|
||||||
// 依赖的变量
|
// 依赖的变量
|
||||||
var udpHole: SDLUDPHole?
|
var udpHole: SDLUDPHole?
|
||||||
var providerActor: SDLTunnelProviderActor
|
var providerAdapter: SDLTunnelProviderAdapter
|
||||||
var puncherActor: SDLPuncherActor
|
var puncherActor: SDLPuncherActor
|
||||||
// dns的client对象
|
// dns的client对象
|
||||||
var dnsClient: SDLDNSClient?
|
var dnsClient: SDLDNSClient?
|
||||||
@ -82,7 +82,7 @@ public class SDLContext {
|
|||||||
|
|
||||||
self.sessionManager = SessionManager()
|
self.sessionManager = SessionManager()
|
||||||
self.arpServer = ArpServer(known_macs: [:])
|
self.arpServer = ArpServer(known_macs: [:])
|
||||||
self.providerActor = SDLTunnelProviderActor(provider: provider, logger: logger)
|
self.providerAdapter = SDLTunnelProviderAdapter(provider: provider, logger: logger)
|
||||||
self.puncherActor = SDLPuncherActor(querySocketAddress: config.stunSocketAddress, logger: logger)
|
self.puncherActor = SDLPuncherActor(querySocketAddress: config.stunSocketAddress, logger: logger)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ public class SDLContext {
|
|||||||
if let packetFlow = self.dnsClient?.packetFlow {
|
if let packetFlow = self.dnsClient?.packetFlow {
|
||||||
for await packet in packetFlow {
|
for await packet in packetFlow {
|
||||||
let nePacket = NEPacket(data: packet, protocolFamily: 2)
|
let nePacket = NEPacket(data: packet, protocolFamily: 2)
|
||||||
await self.providerActor.writePackets(packets: [nePacket])
|
self.providerAdapter.writePackets(packets: [nePacket])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -248,7 +248,7 @@ public class SDLContext {
|
|||||||
self.logger.log("[SDLContext] get registerSuperAck, aes_key len: \(aesKey.count)", level: .info)
|
self.logger.log("[SDLContext] get registerSuperAck, aes_key len: \(aesKey.count)", level: .info)
|
||||||
// 服务器分配的tun网卡信息
|
// 服务器分配的tun网卡信息
|
||||||
do {
|
do {
|
||||||
let ipAddress = try await self.providerActor.setNetworkSettings(networkAddress: self.config.networkAddress, dnsServer: SDLDNSClient.Helper.dnsServer)
|
let ipAddress = try await self.providerAdapter.setNetworkSettings(networkAddress: self.config.networkAddress, dnsServer: SDLDNSClient.Helper.dnsServer)
|
||||||
self.noticeClient?.send(data: NoticeMessage.ipAdress(ip: ipAddress))
|
self.noticeClient?.send(data: NoticeMessage.ipAdress(ip: ipAddress))
|
||||||
|
|
||||||
self.startReader()
|
self.startReader()
|
||||||
@ -377,7 +377,7 @@ public class SDLContext {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
let packet = NEPacket(data: ipPacket.data, protocolFamily: 2)
|
let packet = NEPacket(data: ipPacket.data, protocolFamily: 2)
|
||||||
await self.providerActor.writePackets(packets: [packet])
|
self.providerAdapter.writePackets(packets: [packet])
|
||||||
default:
|
default:
|
||||||
self.logger.log("[SDLContext] get invalid packet", level: .debug)
|
self.logger.log("[SDLContext] get invalid packet", level: .debug)
|
||||||
}
|
}
|
||||||
@ -406,7 +406,7 @@ public class SDLContext {
|
|||||||
// 开启新的任务
|
// 开启新的任务
|
||||||
self.readTask = Task(priority: .high) {
|
self.readTask = Task(priority: .high) {
|
||||||
repeat {
|
repeat {
|
||||||
let packets = await self.providerActor.readPackets()
|
let packets = await self.providerAdapter.readPackets()
|
||||||
Task {
|
Task {
|
||||||
let ipPackets = packets.compactMap { IPPacket($0) }
|
let ipPackets = packets.compactMap { IPPacket($0) }
|
||||||
await self.batchProcessPackets(batchSize: 20, packets: ipPackets)
|
await self.batchProcessPackets(batchSize: 20, packets: ipPackets)
|
||||||
@ -445,7 +445,7 @@ public class SDLContext {
|
|||||||
// 本地通讯, 目标地址是本地服务器的ip地址
|
// 本地通讯, 目标地址是本地服务器的ip地址
|
||||||
if dstIp == networkAddr.ip {
|
if dstIp == networkAddr.ip {
|
||||||
let nePacket = NEPacket(data: packet.data, protocolFamily: 2)
|
let nePacket = NEPacket(data: packet.data, protocolFamily: 2)
|
||||||
await self.providerActor.writePackets(packets: [nePacket])
|
self.providerAdapter.writePackets(packets: [nePacket])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import Combine
|
|||||||
1. 处理rsa的加解密逻辑
|
1. 处理rsa的加解密逻辑
|
||||||
*/
|
*/
|
||||||
|
|
||||||
actor SDLTunnelProviderActor {
|
final class SDLTunnelProviderAdapter {
|
||||||
|
|
||||||
// 路由信息
|
// 路由信息
|
||||||
struct Route {
|
struct Route {
|
||||||
@ -27,9 +27,6 @@ actor SDLTunnelProviderActor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 数据包读取任务
|
|
||||||
private var readTask: Task<(), Never>?
|
|
||||||
|
|
||||||
let provider: NEPacketTunnelProvider
|
let provider: NEPacketTunnelProvider
|
||||||
let logger: SDLLogger
|
let logger: SDLLogger
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user