summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/geoparsers/geoip2.rs2
-rw-r--r--src/main.rs8
-rw-r--r--src/sniffing/headers.rs1
-rw-r--r--src/sniffing/mod.rs2
-rw-r--r--src/startup.rs25
5 files changed, 36 insertions, 2 deletions
diff --git a/src/geoparsers/geoip2.rs b/src/geoparsers/geoip2.rs
index af5d03e..9323280 100644
--- a/src/geoparsers/geoip2.rs
+++ b/src/geoparsers/geoip2.rs
@@ -33,7 +33,7 @@ pub struct Rule {
pub action: RouteAction,
}
-pub fn parse_ruleset(config: NSCConfig) -> Result<Rules, Box<dyn std::error::Error>> {
+pub fn parse_ruleset(config: Config) -> Result<Rules, Box<dyn std::error::Error>> {
let reader = maxminddb::Reader::open_readfile(config.geo_files[0].clone())?;
// Ok(())
diff --git a/src/main.rs b/src/main.rs
index 438b85e..958e39d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,6 +1,12 @@
mod config;
mod geoparsers;
+mod sniffing;
+mod startup;
+
+use startup::init;
+
+use std::io::Read;
fn main() {
- println!("Hello, world!");
+ init();
}
diff --git a/src/sniffing/headers.rs b/src/sniffing/headers.rs
index e69de29..836cf32 100644
--- a/src/sniffing/headers.rs
+++ b/src/sniffing/headers.rs
@@ -0,0 +1 @@
+// Here we will recieve bytes and try to get their destanation & apply Rules for them.
diff --git a/src/sniffing/mod.rs b/src/sniffing/mod.rs
new file mode 100644
index 0000000..dec0be3
--- /dev/null
+++ b/src/sniffing/mod.rs
@@ -0,0 +1,2 @@
+pub mod headers;
+mod metadata;
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]);
+ }
+}