diag_device: handle 0 byte reads

This commit is contained in:
Will Greenberg
2023-12-15 13:21:40 -08:00
parent 20a31a05bd
commit 85d8526829
+9 -1
View File
@@ -67,7 +67,15 @@ pub struct DiagDevice<'a> {
impl<'a> DiagReader for DiagDevice<'a> { impl<'a> DiagReader for DiagDevice<'a> {
fn get_next_messages_container(&mut self) -> DiagResult<MessagesContainer> { fn get_next_messages_container(&mut self) -> DiagResult<MessagesContainer> {
let bytes_read = self.file.read(&mut self.read_buf).unwrap(); let mut bytes_read;
loop {
bytes_read = self.file.read(&mut self.read_buf)?;
if bytes_read == 0 {
println!("read 0 bytes from /dev/diag, retrying...");
} else {
break;
}
}
if let Some(debug_file) = self.debug_file.as_mut() { if let Some(debug_file) = self.debug_file.as_mut() {
let debug_block = DebugFileBlock { let debug_block = DebugFileBlock {
size: bytes_read as u32, size: bytes_read as u32,