From 68a54f7dd6c886253aeb0e9f487495af01344321 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Fri, 10 Apr 2026 18:30:59 +0800 Subject: [PATCH] fix --- Tun/Punchnet/Actors/SDLContextActor.swift | 11 +++++++---- Tun/Punchnet/SDLLogger.swift | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Tun/Punchnet/Actors/SDLContextActor.swift b/Tun/Punchnet/Actors/SDLContextActor.swift index 2f236d8..e59a7bc 100644 --- a/Tun/Punchnet/Actors/SDLContextActor.swift +++ b/Tun/Punchnet/Actors/SDLContextActor.swift @@ -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) // 查找arp缓存中是否有目标mac地址 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()) diff --git a/Tun/Punchnet/SDLLogger.swift b/Tun/Punchnet/SDLLogger.swift index 3d26fb5..9b586dd 100644 --- a/Tun/Punchnet/SDLLogger.swift +++ b/Tun/Punchnet/SDLLogger.swift @@ -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)