This commit is contained in:
anlicheng 2026-04-10 18:30:59 +08:00
parent 055dad7010
commit 68a54f7dd6
2 changed files with 8 additions and 5 deletions

View File

@ -610,12 +610,12 @@ actor SDLContextActor {
if true || self.checkPolicy(ipPacket: ipPacket, ruleMap: ruleMap) {
// debug
if ipPacket.header.source == 168428037 {
SDLLogger.log("data: \(Array(ipPacket.data)), len: \(ipPacket.data.count)", for: .debug)
SDLLogger.log("[SDLContext] data: \(Array(ipPacket.data)), len: \(ipPacket.data.count)", for: .trace)
}
let packet = NEPacket(data: ipPacket.data, protocolFamily: 2)
self.provider.packetFlow.writePacketObjects([packet])
SDLLogger.log("[SDLContext] identity: \(data.identityID), allow, data count: \(ipPacket.data.count)", for: .debug)
SDLLogger.log("[SDLContext] identity: \(data.identityID), allow, data count: \(ipPacket.data.count)", for: .trace)
}
else {
SDLLogger.log("[SDLContext] not found identity: \(data.identityID) ruleMap", for: .debug)
@ -684,7 +684,9 @@ actor SDLContextActor {
let (packets, numbers) = await self.provider.packetFlow.readPackets()
for (data, number) in zip(packets, numbers) where number == 2 {
SDLLogger.log("[SDLContext] read Tun packet step 1, data count: \(data.count)", for: .trace)
if let ipPacket = IPPacket(data) {
SDLLogger.log("[SDLContext] read Tun packet step 2, data count: \(ipPacket.data.count)", for: .trace)
await self.dealTunPacket(packet: ipPacket)
}
}
@ -738,13 +740,14 @@ actor SDLContextActor {
//
// ip
if SDLUtil.inSameNetwork(ip: dstIp, compareIp: networkAddr.ip, maskLen: networkAddr.maskLen) {
SDLLogger.log("[SDLContext] read Tun packet step 3, data: \(Array(packet.data))", for: .trace)
// arpmac
if let dstMac = await self.arpServer.query(ip: dstIp) {
SDLLogger.log("[SDLContext] dstIp: \(dstIp.asIpAddress()), dst_mac is: \(SDLUtil.formatMacAddress(mac: dstMac))")
SDLLogger.log("[SDLContext] dstIp: \(dstIp.asIpAddress()), dst_mac is: \(SDLUtil.formatMacAddress(mac: dstMac))", for: .trace)
await self.routeLayerPacket(dstMac: dstMac, type: .ipv4, data: packet.data)
}
else {
SDLLogger.log("[SDLContext] dstIp: \(dstIp.asIpAddress()) arp query not found, broadcast")
SDLLogger.log("[SDLContext] dstIp: \(dstIp.asIpAddress()) arp query not found, broadcast", for: .trace)
// // arp广
// let arpReqeust = ARPPacket.arpRequest(senderIP: networkAddr.ip, senderMAC: networkAddr.mac, targetIP: dstIp)
// await self.routeLayerPacket(dstMac: ARPPacket.broadcastMac , type: .arp, data: arpReqeust.marshal())

View File

@ -15,7 +15,7 @@ public class SDLLogger: @unchecked Sendable {
case trace = "com.jihe.punchnet.trace"
}
static var loggers: [String: SDLLogger] {
private static var loggers: [String: SDLLogger] {
var loggers: [String: SDLLogger] = [:]
for sub in Subsystem.allCases {
loggers[sub.rawValue] = .init(subsystem: sub)