diff --git a/src/phy/raw_socket.rs b/src/phy/raw_socket.rs index e01438f46..49e7470a1 100644 --- a/src/phy/raw_socket.rs +++ b/src/phy/raw_socket.rs @@ -111,7 +111,10 @@ impl phy::TxToken for TxToken { let mut lower = self.lower.borrow_mut(); let mut buffer = vec![0; len]; let result = f(&mut buffer); - lower.send(&buffer[..]).unwrap(); - result + match lower.send(&buffer[..]) { + Ok(_) => result, + Err(err) if err.kind() == io::ErrorKind::WouldBlock => Err(crate::Error::Exhausted), + Err(err) => panic!("{}", err), + } } } diff --git a/src/phy/sys/raw_socket.rs b/src/phy/sys/raw_socket.rs index 2161b3d38..f9654d509 100644 --- a/src/phy/sys/raw_socket.rs +++ b/src/phy/sys/raw_socket.rs @@ -104,7 +104,7 @@ impl RawSocketDesc { 0, ); if len == -1 { - Err(io::Error::last_os_error()).unwrap() + return Err(io::Error::last_os_error()); } Ok(len as usize) }