parses all packets, forgot to account for partial

This commit is contained in:
Alon Levy 2023-12-29 01:20:06 +02:00
parent 1716ed1924
commit 2e4e7c7c07

View File

@ -7,12 +7,24 @@ fn main() -> anyhow::Result<()> {
let file = File::open("in.pcap")?; let file = File::open("in.pcap")?;
let mut cap = PcapNGReader::new(65535, file)?; let mut cap = PcapNGReader::new(65535, file)?;
let mut i = 0; let mut i = 0;
let mut max_offset = 0; let mut size = 0;
while let Ok((offset, _packet)) = cap.next() { loop {
i += 1; match cap.next() {
max_offset = offset; Ok((offset, _packet)) => {
cap.consume(offset) i += 1;
size += offset;
cap.consume(offset)
}
Err(PcapError::Eof) => break,
Err(PcapError::Incomplete) => {
cap.refill().unwrap();
}
Err(_) => {
println!("unexpected error");
break;
}
}
} }
println!("found {} packets, {} last offset", i, max_offset); println!("found {} packets, {} size", i, size);
Ok(()) Ok(())
} }