[mio] 完善错误处理
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user