summaryrefslogtreecommitdiff
path: root/src/startup.rs
diff options
context:
space:
mode:
authorzedddie <rust@zedddie.rs>2026-03-15 14:59:11 +0100
committertuturuu <zedddiezxc@gmail.com>2026-03-15 14:59:11 +0100
commit06d4e558cdf97b64e4cbc95becf1b25c1c24950e (patch)
tree885b243d572a31d15e9007b05aa310f27307bc11 /src/startup.rs
parentcb61a2eda096bd9900878034c77145baf1fbf416 (diff)
sniffing early work
use `tun` crate examope for starters, to map all traffic through tun virtual interface, in next commits will push these packets to sniffing module which will deciede further modifications of proxies based by user's Config.
Diffstat (limited to 'src/startup.rs')
-rw-r--r--src/startup.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/startup.rs b/src/startup.rs
new file mode 100644
index 0000000..32ed278
--- /dev/null
+++ b/src/startup.rs
@@ -0,0 +1,25 @@
+// Here we iniitialize systems crucial for nsc
+use std::io::Read;
+
+pub fn init() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
+ 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)?;
+ println!("{:?}", &buf[0..amount]);
+ }
+}