From 527b4622914efa441c562708f6dab6e2459d693c Mon Sep 17 00:00:00 2001 From: Mute Date: Sun, 16 Aug 2026 08:03:28 +0000 Subject: [PATCH] format MAC addresses as hex with colons in logs Add Display impl for MacAddr (XX:XX:XX:XX:XX:XX) and use {src} instead of {src:?} in all log calls. --- gatunad/src/link.rs | 10 ++++++++++ gatunad/src/main.rs | 12 ++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gatunad/src/link.rs b/gatunad/src/link.rs index 23c9151..fa02f48 100644 --- a/gatunad/src/link.rs +++ b/gatunad/src/link.rs @@ -12,6 +12,16 @@ use crate::frame::{ETHERTYPE, ETH_HEADER_LEN}; #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub struct MacAddr(pub [u8; 6]); +impl std::fmt::Display for MacAddr { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{:02X}:{:02X}:{:02X}:{:02X}:{:02X}:{:02X}", + self.0[0], self.0[1], self.0[2], self.0[3], self.0[4], self.0[5] + ) + } +} + impl MacAddr { #[allow(dead_code)] pub fn broadcast() -> Self { diff --git a/gatunad/src/main.rs b/gatunad/src/main.rs index 2533716..56974fa 100644 --- a/gatunad/src/main.rs +++ b/gatunad/src/main.rs @@ -114,7 +114,7 @@ async fn main() -> ExitCode { let frame = match Frame::parse(payload) { Ok(f) => f, Err(e) => { - error!("decode from {src:?}: {e}"); + error!("decode from {src}: {e}"); continue; } }; @@ -145,16 +145,16 @@ async fn handle_frame( ) { match frame { Frame::Discover => { - info!("DISCOVER from {src:?}"); + info!("DISCOVER from {src}"); let manifest = Frame::Manifest { hostname: (**hostname).clone(), entries: table.entries(), }; let _ = tx.send((src, manifest.encode())).await; - info!("MANIFEST sent to {src:?} ({} upstreams)", table.0.len()); + info!("MANIFEST sent to {src} ({} upstreams)", table.0.len()); } Frame::Open { upstream_id, proto: _ } => { - info!("OPEN upstream {upstream_id} from {src:?}"); + info!("OPEN upstream {upstream_id} from {src}"); let upstream = table.get(upstream_id); match upstream { Some(upstream) => { @@ -188,7 +188,7 @@ async fn handle_frame( } Err(e) => { error!("connect 127.0.0.1:{port} failed: {e}"); - info!("OPEN_NAK upstream {upstream_id} (connect_failed) to {src:?}"); + info!("OPEN_NAK upstream {upstream_id} (connect_failed) to {src}"); let nak = Frame::OpenNak { upstream_id, reason: REASON_CONNECT_FAILED }; let _ = tx.send((src, nak.encode())).await; @@ -224,7 +224,7 @@ async fn handle_frame( } } Frame::Close { session_id, reason: _ } => { - info!("CLOSE session {session_id} from {src:?}"); + info!("CLOSE session {session_id} from {src}"); store.lock().expect("store poisoned").remove(&session_id); } Frame::Ping { nonce } => {