From 42f9a0f4ffb375b05c7dffda9b8bd90030d06eeb Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Thu, 26 Jun 2025 03:49:01 -0500 Subject: [PATCH] client server hid stream fix --- client/src/app.rs | 1 - client/src/input/keyboard.rs | 7 ++++++- scripts/install-server.sh | 2 +- server/src/main.rs | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/client/src/app.rs b/client/src/app.rs index c15c53b..a3c2509 100644 --- a/client/src/app.rs +++ b/client/src/app.rs @@ -10,7 +10,6 @@ use tonic::Request; use tracing::{debug, error, info, warn}; use winit::{ event_loop::EventLoopBuilder, - // platform::x11::EventLoopBuilderExtX11, platform::wayland::EventLoopBuilderExtWayland, event::Event, }; diff --git a/client/src/input/keyboard.rs b/client/src/input/keyboard.rs index 8d72ebb..4b89cc9 100644 --- a/client/src/input/keyboard.rs +++ b/client/src/input/keyboard.rs @@ -45,7 +45,12 @@ impl KeyboardAggregator { let report = self.build_report(); if self.dev_mode { debug!(?report, "kbd"); } - let _ = self.tx.send(KeyboardReport { data: report.to_vec() }); + static COUNTER: AtomicU32 = AtomicU32::new(0); + let id = COUNTER.fetch_add(1, Ordering::Relaxed); + let _ = self.tx.send(KeyboardReport { + seq: id, + data: report.to_vec() + }); if self.is_magic() { warn!("🧙 magic chord – exiting 🪄 AVADA KEDAVRA!!! 💥💀"); diff --git a/scripts/install-server.sh b/scripts/install-server.sh index 6c5cd54..5a95e17 100755 --- a/scripts/install-server.sh +++ b/scripts/install-server.sh @@ -104,7 +104,7 @@ After=network.target lesavka-core.service [Service] ExecStart=/usr/local/bin/lesavka-server Restart=always -Environment=RUST_LOG=lesavka_server=debug,lesavka_server::usb_gadget=info +Environment=RUST_LOG=lesavka_server=trace,lesavka_server::usb_gadget=info Environment=RUST_BACKTRACE=1 Restart=always RestartSec=5 diff --git a/server/src/main.rs b/server/src/main.rs index 9c36731..bb7bf7f 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -33,7 +33,7 @@ fn init_tracing() -> anyhow::Result { // 2. build subscriber once let env = EnvFilter::try_from_default_env() - .unwrap_or_else(|_| EnvFilter::new("lesavka_server=info")); + .unwrap_or_else(|_| {EnvFilter::new("lesavka_server=trace")}); let console_layer = fmt::layer() .with_target(true) .with_thread_ids(true); @@ -163,6 +163,7 @@ impl Relay for Handler { Some(libc::EBUSY) | // still opening Some(libc::ENODEV) | // gadget not‑yet configured Some(libc::EPIPE) | // host vanished + Some(libc::EINVAL) | // host hasn’t accepted EP config yet Some(libc::EAGAIN)) // non‑blocking => { tokio::time::sleep(Duration::from_millis(10)).await; @@ -202,6 +203,7 @@ impl Relay for Handler { Some(libc::EBUSY) | // still opening Some(libc::ENODEV) | // gadget not‑yet configured Some(libc::EPIPE) | // host vanished + Some(libc::EINVAL) | // host hasn’t accepted EP config yet Some(libc::EAGAIN)) // non‑blocking => { tokio::time::sleep(Duration::from_millis(10)).await;