use riptun::{AsyncStdTun, Result};
use std::io::ErrorKind;
const NUM_QUEUES: usize = 5;
#[async_std::main]
pub async fn main() -> Result<()> {
let async_dev = AsyncStdTun::new("rip%d", NUM_QUEUES)?;
println!("[INFO] => Created new virtual device: {}", async_dev.name());
let mut buffer: [u8; 1500] = [0x00; 1500];
loop {
let read = match async_dev.recv(&mut buffer).await {
Ok(read) => read,
Err(err) if err.kind() == ErrorKind::WouldBlock => continue,
Err(err) => {
println!("[ERROR] => {}", err);
continue;
}
};
println!("[INFO] => Packet data ({}B): {:?}", read, &buffer[..read]);
}
}