diff options
author | Brian Cully <bjc@kublai.com> | 2019-09-26 09:01:40 -0400 |
---|---|---|
committer | Brian Cully <bjc@kublai.com> | 2019-09-26 09:01:40 -0400 |
commit | 03bee9362134bf9c3d5f4579391a5ced00b689e4 (patch) | |
tree | cb5a2dccc0e837b9682655b8065e2ec0a32fc3d5 | |
parent | 4e8ce911eb4cb2d7fd283bce17b48ce222baf92a (diff) | |
download | bootkbd-03bee9362134bf9c3d5f4579391a5ced00b689e4.tar.gz bootkbd-03bee9362134bf9c3d5f4579391a5ced00b689e4.zip |
Check if boot keyboard exist in steady state.
-rw-r--r-- | src/lib.rs | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -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")); } } } |