From d8bbf40f38826e8f2398b7b0a7de67f8185f9598 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Wed, 18 Jun 2025 02:06:11 -0500 Subject: [PATCH] server fix --- scripts/install-server.sh | 1 + server/src/main.rs | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/scripts/install-server.sh b/scripts/install-server.sh index 0729d75..348a5ba 100755 --- a/scripts/install-server.sh +++ b/scripts/install-server.sh @@ -59,6 +59,7 @@ After=network.target navka-core.service [Service] ExecStart=/usr/local/bin/navka-server Restart=always +Environment="RUST_LOG=navka_server=trace" User=root [Install] WantedBy=multi-user.target diff --git a/server/src/main.rs b/server/src/main.rs index 15f9e42..f8ab67e 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -53,14 +53,17 @@ impl Relay for Handler { tokio::spawn(async move { let mut s = req.into_inner(); + let mut boot_mode = true; while let Some(pkt) = s.next().await.transpose()? { loop { match ms.lock().await.write_all(&pkt.data).await { - Ok(()) => break, - Err(e) if e.kind() == ErrorKind::WouldBlock => { - // gadget FIFO full – give it a breath - tokio::time::sleep(std::time::Duration::from_micros(500)).await; - continue; + Ok(()) => { + trace!("🖱️ wrote {}", pkt.data.iter() + .map(|b| format!("{b:02X}")).collect::>().join(" ")); + break; + } + Err(e) if e.kind() == std::io::ErrorKind::WouldBlock => { + tokio::time::sleep(Duration::from_micros(500)).await; } Err(e) => return Err(Status::internal(format!("hidg1: {e}"))), } @@ -105,7 +108,7 @@ async fn main() -> anyhow::Result<()> { let ms = OpenOptions::new() .write(true) // .read(true) - // .custom_flags(libc::O_NONBLOCK) + .custom_flags(libc::O_NONBLOCK) .open("/dev/hidg1") .await?;