use std::{thread, time::Duration};
fn main() {
let device = pcap::Device::lookup()
.expect("device lookup failed")
.expect("no device available");
println!("Using device {}", device.name);
let mut cap = pcap::Capture::from_device(device)
.unwrap()
.immediate_mode(true)
.open()
.unwrap();
println!("Using device");
let break_handle = cap.breakloop_handle();
let capture_thread = thread::spawn(move || {
while cap.next_packet().is_ok() {
println!("got packet!");
}
println!("capture loop exited");
});
thread::spawn(move || {
thread::sleep(Duration::from_secs(1));
println!("break loop called!");
break_handle.breakloop();
});
capture_thread.join().unwrap();
}