diff --git a/Tun/Punchnet/Context/SDLContextActor.swift b/Tun/Punchnet/Context/SDLContextActor.swift index 9be6168..0ac2130 100644 --- a/Tun/Punchnet/Context/SDLContextActor.swift +++ b/Tun/Punchnet/Context/SDLContextActor.swift @@ -470,7 +470,7 @@ extension SDLContextActor { } private func handleUDPHolePacket(remoteAddress: SocketAddress, message: SDLHoleMessage, source: SDLUDPHoleKind) async { - switch message.inboundMessage { + switch message { case .control(let message): switch message { case .stunReply(_), .stunProbeReply(_): diff --git a/Tun/Punchnet/SDLQPSCounter.swift b/Tun/Punchnet/SDLQPSCounter.swift deleted file mode 100644 index 9c2859e..0000000 --- a/Tun/Punchnet/SDLQPSCounter.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// SDLQPSCounter.swift -// Tun -// -// Created by 安礼成 on 2024/4/16. -// - -import Foundation - -// 计数器,用来统计qps -class SDLQPSCounter: @unchecked Sendable { - private var count = 0 - private let timer: DispatchSourceTimer - private let label: String - private let queue = DispatchQueue(label: "com.punchnet.qps") - - init(label: String) { - self.label = label - timer = DispatchSource.makeTimerSource(queue: queue) - timer.schedule(deadline: .now(), repeating: .seconds(1), leeway: .milliseconds(100)) - timer.setEventHandler { [weak self] in - guard let self = self else { return } - self.count = 0 - } - timer.resume() - } - - func increment(num: Int = 1) { - queue.async { - self.count += num - } - } - - deinit { - timer.cancel() - } -} diff --git a/Tun/Punchnet/UDPHole/SDLHoleMessage.swift b/Tun/Punchnet/UDPHole/SDLHoleMessage.swift index f32f5fd..834d3af 100644 --- a/Tun/Punchnet/UDPHole/SDLHoleMessage.swift +++ b/Tun/Punchnet/UDPHole/SDLHoleMessage.swift @@ -12,10 +12,7 @@ import SwiftProtobuf // --MARK: 进来的消息, 这里需要采用代数类型来表示 enum SDLHoleMessage { case data(SDLData) - case register(SDLRegister) - case registerAck(SDLRegisterAck) - case stunProbeReply(SDLStunProbeReply) - case stunReply(SDLStunReply) + case control(SDLHoleControlMessage) } enum SDLHoleControlMessage { @@ -25,28 +22,6 @@ enum SDLHoleControlMessage { case stunReply(SDLStunReply) } -enum SDLHoleInboundMessage { - case control(SDLHoleControlMessage) - case data(SDLData) -} - -extension SDLHoleMessage { - var inboundMessage: SDLHoleInboundMessage { - switch self { - case .data(let data): - return .data(data) - case .register(let register): - return .control(.register(register)) - case .registerAck(let registerAck): - return .control(.registerAck(registerAck)) - case .stunProbeReply(let stunProbeReply): - return .control(.stunProbeReply(stunProbeReply)) - case .stunReply(let stunReply): - return .control(.stunReply(stunReply)) - } - } -} - extension SDLHoleMessage { static func decode(buffer: inout ByteBuffer) throws -> SDLHoleMessage? { @@ -67,25 +42,25 @@ extension SDLHoleMessage { let registerPacket = try? SDLRegister(serializedBytes: bytes) else { return nil } - return .register(registerPacket) + return .control(.register(registerPacket)) case .registerAck: guard let bytes = buffer.readBytes(length: buffer.readableBytes), let registerAck = try? SDLRegisterAck(serializedBytes: bytes) else { return nil } - return .registerAck(registerAck) + return .control(.registerAck(registerAck)) case .stunProbeReply: guard let bytes = buffer.readBytes(length: buffer.readableBytes), let stunProbeReply = try? SDLStunProbeReply(serializedBytes: bytes) else { return nil } - return .stunProbeReply(stunProbeReply) + return .control(.stunProbeReply(stunProbeReply)) case .stunReply: guard let bytes = buffer.readBytes(length: buffer.readableBytes), let stunReply = try? SDLStunReply(serializedBytes: bytes) else { return nil } - return .stunReply(stunReply) + return .control(.stunReply(stunReply)) default: SDLLogger.log("[SDLUDPHole] decode miss type: \(type)", for: .debug) diff --git a/Tun/Punchnet/UDPHole/SDLUDPHoleService.swift b/Tun/Punchnet/UDPHole/SDLUDPHoleService.swift index 1bba705..9a61ec5 100644 --- a/Tun/Punchnet/UDPHole/SDLUDPHoleService.swift +++ b/Tun/Punchnet/UDPHole/SDLUDPHoleService.swift @@ -165,7 +165,7 @@ actor SDLUDPHoleService { } private func handleV4Message(remoteAddress: SocketAddress, message: SDLHoleMessage) async throws { - switch message.inboundMessage { + switch message { case .control(let control): switch control { case .stunProbeReply(let probeReply): @@ -290,7 +290,7 @@ actor SDLUDPHoleServiceProxy { switch event { case .packet(_, let message, _): - switch message.inboundMessage { + switch message { case .data(let data): await self.packetInboundActor?.handleData(data) case .control: