From 03bee9362134bf9c3d5f4579391a5ced00b689e4 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Thu, 26 Sep 2019 09:01:40 -0400 Subject: Check if boot keyboard exist in steady state. --- src/lib.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index a1357c7..703f431 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -334,15 +334,21 @@ impl Device { } DeviceState::Running => { - let mut buf: [u8; 8] = [0; 8]; if let Some(ref mut ep) = self.endpoints[0] { - match host.in_transfer(ep, &mut buf) { - Err(TransferError::Permanent(msg)) => error!("reading report: {}", msg), + let mut b: [u8; 8] = [0; 8]; + let buf = &mut b[..]; + match host.in_transfer(ep, buf) { + Err(TransferError::Permanent(msg)) => { + error!("reading report: {}", msg); + return Err(TransferError::Permanent(msg)); + } Err(TransferError::Retry(_)) => return Ok(()), Ok(_) => { - callback(self.addr, &buf); + callback(self.addr, buf); } } + } else { + return Err(TransferError::Permanent("no boot keyboard")); } } } -- cgit v1.2.3