// Here we iniitialize systems crucial for nsc use crate::sniffing::headers::Protocol; use crate::sniffing::headers::sniff_raw_packets; use std::io::Read; pub fn init() -> Result<(), Box> { let mut config = tun::Configuration::default(); config .address((10, 0, 0, 9)) .netmask((255, 255, 255, 0)) .destination((10, 0, 0, 1)) .up(); #[cfg(target_os = "linux")] config.platform_config(|config| { // requiring root privilege to acquire complete functions config.ensure_root_privileges(true); }); let mut dev = tun::create(&config)?; let mut buf = [0; 4096]; loop { let amount = dev.read(&mut buf)?; // dbg!(sniff_raw_packets(&buf[0..amount])?); let govno = sniff_raw_packets(&buf[0..amount])?; if !matches!(govno.protocol(), Protocol::Unsupported(_)) { // println!("1") // println!("{:?}", govno) } // dbg!("{:?}", &buf[0..amount]); } }