From 77a631a001a0bfee8e57ce2c71b190fb56be68c6 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Tue, 19 Aug 2025 17:03:27 +0800 Subject: [PATCH] add debug info --- Sources/Punchnet/ARPPacket.swift | 9 ++++++++- Sources/Punchnet/SDLContext.swift | 11 ++--------- Sources/Punchnet/SDLUtil.swift | 6 ++++++ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Sources/Punchnet/ARPPacket.swift b/Sources/Punchnet/ARPPacket.swift index dbc5ea7..fa618d2 100644 --- a/Sources/Punchnet/ARPPacket.swift +++ b/Sources/Punchnet/ARPPacket.swift @@ -6,7 +6,14 @@ // import Foundation -struct ARPPacket { +struct ARPPacket: CustomStringConvertible { + var description: String { + return """ +opcode: \(self.opcode), sender_ip: \(SDLUtil.int32ToIp(self.senderIP)), sender_mac: \(SDLUtil.formatMacAddress(mac: senderMAC)), +target_ip: \(SDLUtil.int32ToIp(self.targetIP)), target_mac: \(SDLUtil.formatMacAddress(mac: targetMAC)) +""" + } + // ARP操作码 enum Opcode: UInt16 { case request = 0x01 diff --git a/Sources/Punchnet/SDLContext.swift b/Sources/Punchnet/SDLContext.swift index 8b18c8f..1aff3ac 100644 --- a/Sources/Punchnet/SDLContext.swift +++ b/Sources/Punchnet/SDLContext.swift @@ -232,7 +232,7 @@ public class SDLContext: @unchecked Sendable { private func handleSuperEvent(event: SDLSuperClient.SuperEvent) async throws { switch event { case .ready: - self.logger.log("[SDLContext] get registerSuper, mac address: \(Self.formatMacAddress(mac: self.devAddr.mac))", level: .debug) + self.logger.log("[SDLContext] get registerSuper, mac address: \(SDLUtil.formatMacAddress(mac: self.devAddr.mac))", level: .debug) guard let message = try await self.superClient?.registerSuper(context: self).get() else { return } @@ -391,7 +391,7 @@ public class SDLContext: @unchecked Sendable { await self.arpServer.append(ip: arpPacket.senderIP, mac: arpPacket.senderMAC) } } else { - self.logger.log("[SDLContext] get invalid arp packet, target_ip: \(arpPacket)", level: .debug) + self.logger.log("[SDLContext] get invalid arp packet: \(arpPacket), target_ip: \(SDLUtil.int32ToIp(arpPacket.targetIP)), net ip: \(SDLUtil.int32ToIp(self.devAddr.netAddr))", level: .debug) } } else { self.logger.log("[SDLContext] get invalid arp packet", level: .debug) @@ -622,11 +622,4 @@ public class SDLContext: @unchecked Sendable { return Data(macAddress) } - // 将mac地址转换成字符串 - private static func formatMacAddress(mac: Data) -> String { - let bytes = [UInt8](mac) - - return bytes.map { String(format: "%02X", $0) }.joined(separator: ":").lowercased() - } - } diff --git a/Sources/Punchnet/SDLUtil.swift b/Sources/Punchnet/SDLUtil.swift index 2307a3c..69f46b9 100644 --- a/Sources/Punchnet/SDLUtil.swift +++ b/Sources/Punchnet/SDLUtil.swift @@ -42,5 +42,11 @@ struct SDLUtil { return ip & mask == compareIp & mask } + + public static func formatMacAddress(mac: Data) -> String { + let bytes = [UInt8](mac) + + return bytes.map { String(format: "%02X", $0) }.joined(separator: ":").lowercased() + } }