INNER CODE UNIT · Rust
next_packet
domcyrus/rustnet · crates/rustnet-capture/src/lib.rs:557
pub fn next_packet(&mut self) -> Result<Option<CapturedPacket>> {
match self.capture.next_packet() {
Ok(packet) => {
self.idle_wait.packet_received();
let ts = packet.header.ts;
Ok(Some(CapturedPacket {
data: packet.data.to_vec(),
timestamp: timeval_to_system_time(ts.tv_sec, ts.tv_usec),
original_len: packet.header.len,
}))
}
Err(PcapError::TimeoutExpired) => {
self.idle_wait.wait(&self.capture);
Ok(None)
}
Err(e) => Err(e.into()),
}
}