From 24fb41a0d59a066fd2c5881d591028e681de671a Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Mon, 16 Jun 2025 18:11:14 -0500 Subject: [PATCH] server updates --- client/src/input/keyboard.rs | 2 +- server/src/main.rs | 47 ++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/client/src/input/keyboard.rs b/client/src/input/keyboard.rs index 9f980d4..eac0f38 100644 --- a/client/src/input/keyboard.rs +++ b/client/src/input/keyboard.rs @@ -92,7 +92,7 @@ impl KeyboardAggregator { self.dev_log(|| debug!(?report, "Keyboard HID report")); self.send_report(report); if self.is_magic_chord() { - self.dev_log(|| warn!("Magic chord pressed => AVADA KEDAVA!!!")); + self.dev_log(|| warn!("Magic chord pressed => πŸ§™β€β™‚οΈπŸͺ„πŸ’₯ AVADA KEDAVRA!!! πŸ’€")); std::process::exit(0); } } diff --git a/server/src/main.rs b/server/src/main.rs index b737c84..4f347bb 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -37,44 +37,45 @@ impl Relay for Handler { tokio::spawn(async move { while let Some(msg) = in_stream.next().await.transpose()? { - info!("πŸ“₯ packet received"); match msg.kind { - /* ───────────── KEYBOARD ───────────── */ + /* ───── KEYBOARD ───── */ Some(hid_report::Kind::KeyboardReport(ref v)) if v.len() == 8 => { - let mut f = kb.lock().await; - match f.write_all(v).await { - Ok(()) => info!("⌨️ HID report forwarded β†’ /dev/hidg0"), + match kb.lock().await.write_all(v).await { + Ok(_) => info!("⌨️ β†’ /dev/hidg0 (8 B)"), Err(e) if e.kind() == std::io::ErrorKind::WouldBlock => { - trace!("⌨️ /dev/hidg0 busy ({e}); dropped packet"); + trace!("⌨️ /dev/hidg0 busy, dropped packet"); + continue; } Err(e) => { - error!("⌨️ write error to /dev/hidg0: {e}"); - continue; // drop this packet, keep stream alive - } - } - } - - /* ─────────────── MOUSE ─────────────── */ - Some(hid_report::Kind::MouseReport(ref v)) if v.len() == 4 => { - let mut f = ms.lock().await; - match f.write_all(v).await { - Ok(()) => info!("πŸ–±οΈ HID report forwarded β†’ /dev/hidg1"), - Err(e) if e.kind() == std::io::ErrorKind::WouldBlock => { - trace!("πŸ–±οΈ /dev/hidg1 busy ({e}); dropped packet"); - } - Err(e) => { - error!("πŸ–±οΈ write error to /dev/hidg1: {e}"); + error!("⌨️ write error: {e}"); continue; } } } - /* ────────────── BAD PACKET ──────────── */ + /* ───── MOUSE ───── */ + Some(hid_report::Kind::MouseReport(ref v)) if v.len() == 4 => { + match ms.lock().await.write_all(v).await { + Ok(_) => info!("πŸ–±οΈ β†’ /dev/hidg1 (4 B)"), + Err(e) if e.kind() == std::io::ErrorKind::WouldBlock => { + trace!("πŸ–±οΈ /dev/hidg1 busy, dropped packet"); + continue; + } + Err(e) => { + error!("πŸ–±οΈ write error: {e}"); + continue; + } + } + } + + /* ───── bad / unknown ───── */ _ => { error!(?msg.kind, "⚠️ malformed packet"); continue; } } + + // echo back so the client knows we’re alive let _ = tx.send(Ok(msg)).await; } info!("πŸ”š client stream closed");