server fix

This commit is contained in:
Brad Stein 2025-06-18 02:06:11 -05:00
parent e3d84b8289
commit d8bbf40f38
2 changed files with 10 additions and 6 deletions

View File

@ -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

View File

@ -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::<Vec<_>>().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?;