X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=src%2Fmain.rs;h=f1e66ee9639ff6edf8e62c1dcf54c80c768d88f7;hb=c1a5fe1d8e733d744a94acf278903133e2a72115;hp=24802605367181b20bd90def3939b2d9f37b28ee;hpb=51aa7c917b3ecfb80d06d5a06cc9f553b8bc91c6;p=rup.git diff --git a/src/main.rs b/src/main.rs index 2480260..f1e66ee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,11 +29,11 @@ pub struct Request { m: Option } -fn main_page(query: Query) -> Result { +fn main_page(query: Query, key: &str) -> Result { let m = match &query.m { Some(b) => - match crypto::decrypt(KEY, b) { + match crypto::decrypt(key, b) { Ok(m) => m, Err(_e) => String::from(consts::DEFAULT_MESSAGE) // TODO: log error. }, @@ -53,10 +53,10 @@ struct Config { fn get_exe_name() -> String { let first_arg = std::env::args().nth(0).unwrap(); - //dbg!(&first_arg); let sep: &[_] = &['\\', '/']; first_arg[first_arg.rfind(sep).unwrap()+1..].to_string() } + fn read_key() -> String { let mut key = String::new(); File::open(consts::FILE_KEY) @@ -65,14 +65,13 @@ fn read_key() -> String { .expect(&format!("Failed to read key file: {}", consts::FILE_KEY)); String::from( - percent_encoding::percent_decode(key.as_bytes()) + percent_encoding::percent_decode(key.replace('\n', "").as_bytes()) .decode_utf8() .expect(&format!("Failed to decode key file: {}", consts::FILE_KEY)) ) } fn main() -> std::io::Result<()> { - let key = read_key(); if process_args(&key) { return Ok(()) } @@ -92,11 +91,13 @@ fn main() -> std::io::Result<()> { let mut listenfd = ListenFd::from_env(); let mut server = HttpServer::new( - || { + move || { + let key = key.clone(); // Is this neccessary?? + App::new() .wrap(middleware::Compress::default()) .wrap(middleware::Logger::default()) - .service(web::resource("/").to(main_page)) + .service(web::resource("/").to(move |query| main_page(query, &key))) .service(fs::Files::new("/static", "static").show_files_listing()) } );