[mio] 完善错误处理

This commit is contained in:
lubeilin
2024-03-05 21:35:49 +08:00
parent e2003d8dea
commit 734e613452
2 changed files with 5 additions and 2 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ impl<B: AsRef<[u8]>> EthernetPacket<B> {
let packet = EthernetPacket::unchecked(buffer);
//头部固定14位
if packet.buffer.as_ref().len() < 14 {
Err(io::Error::from(io::ErrorKind::InvalidData))?;
Err(io::Error::new(io::ErrorKind::InvalidData,format!("len={}", packet.buffer.as_ref().len())))?;
}
Ok(packet)
+4 -1
View File
@@ -13,8 +13,11 @@ where
let mut eth_buf = [0; 65536];
loop {
let len = read_fn(&mut eth_buf)?;
if len == 0{
return Ok(len);
}
//处理arp包
let mut ether = ethernet::packet::EthernetPacket::unchecked(&mut eth_buf[..len]);
let mut ether = ethernet::packet::EthernetPacket::new(&mut eth_buf[..len])?;
match ether.protocol() {
Protocol::Ipv4 => {
let len = ether.payload().len();