From 5d192332b90fbfa415ac72df66051ce19886471e Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Mon, 13 Apr 2026 16:03:34 +0800 Subject: [PATCH] fix --- Tun/Punchnet/Actors/SDLContextActor.swift | 9 ++++----- Tun/Punchnet/DNS/DNSCloudClient.swift | 2 +- Tun/Punchnet/SDLUDPHole.swift | 8 -------- Tun/Punchnet/SessionManager.swift | 2 +- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/Tun/Punchnet/Actors/SDLContextActor.swift b/Tun/Punchnet/Actors/SDLContextActor.swift index e59a7bc..0027c2c 100644 --- a/Tun/Punchnet/Actors/SDLContextActor.swift +++ b/Tun/Punchnet/Actors/SDLContextActor.swift @@ -103,7 +103,6 @@ actor SDLContextActor { } public func start() async { - self.startMonitor() // 启动arp的定时清理任务 @@ -610,12 +609,12 @@ actor SDLContextActor { if true || self.checkPolicy(ipPacket: ipPacket, ruleMap: ruleMap) { // 用来做debug if ipPacket.header.source == 168428037 { - SDLLogger.log("[SDLContext] data: \(Array(ipPacket.data)), len: \(ipPacket.data.count)", for: .trace) + SDLLogger.log("[SDLContext] hole 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: .trace) + SDLLogger.log("[SDLContext] hole identity: \(data.identityID), allow, data count: \(ipPacket.data.count)", for: .trace) } else { SDLLogger.log("[SDLContext] not found identity: \(data.identityID) ruleMap", for: .debug) @@ -797,14 +796,14 @@ actor SDLContextActor { else { // 通过session发送到对端 if let session = self.sessionManager.getSession(toAddress: dstMac) { - SDLLogger.log("[SDLContext] send packet by session: \(session)") + SDLLogger.log("[SDLContext] step 5 send packet by session: \(session)", for: .trace) udpHole.send(type: .data, data: data, remoteAddress: session.natAddress) self.flowTracer.inc(num: data.count, type: .p2p) } else { // 通过super_node进行转发 udpHole.send(type: .data, data: data, remoteAddress: self.config.stunSocketAddress) - SDLLogger.log("[SDLContext] send packet by super: \(self.config.stunSocketAddress)") + SDLLogger.log("[SDLContext] step 5 send packet by super: \(self.config.stunSocketAddress)", for: .trace) // 流量统计 self.flowTracer.inc(num: data.count, type: .forward) diff --git a/Tun/Punchnet/DNS/DNSCloudClient.swift b/Tun/Punchnet/DNS/DNSCloudClient.swift index 23e33ad..f1e1867 100644 --- a/Tun/Punchnet/DNS/DNSCloudClient.swift +++ b/Tun/Punchnet/DNS/DNSCloudClient.swift @@ -85,7 +85,7 @@ final class DNSCloudClient { return } - connection.send(content: ipPacketData, completion: .contentProcessed { [weak self] error in + connection.send(content: ipPacketData, completion: .contentProcessed { error in if let error = error { SDLLogger.log("[DNSClient] Send error: \(error)", for: .debug) } diff --git a/Tun/Punchnet/SDLUDPHole.swift b/Tun/Punchnet/SDLUDPHole.swift index e00a88c..664fee3 100644 --- a/Tun/Punchnet/SDLUDPHole.swift +++ b/Tun/Punchnet/SDLUDPHole.swift @@ -1,11 +1,3 @@ -// -// SDLUDPHoleActor 2.swift -// punchnet -// -// Created by 安礼成 on 2026/1/28. -// - - // // SDLanServer.swift // Tun diff --git a/Tun/Punchnet/SessionManager.swift b/Tun/Punchnet/SessionManager.swift index e0437e5..08e2c87 100644 --- a/Tun/Punchnet/SessionManager.swift +++ b/Tun/Punchnet/SessionManager.swift @@ -43,7 +43,7 @@ class SessionManager { } if var session = self.sessions[toAddress] { - if session.lastTimestamp >= timestamp + ttl { + if session.lastTimestamp + ttl >= timestamp { session.updateLastTimestamp(timestamp) self.sessions[toAddress] = session