X-Git-Url: http://git.euphorik.ch/?p=rup.git;a=blobdiff_plain;f=src%2Fmain.rs;h=6c9ab2796d0fd05fe379d71719f2ba2fda43902b;hp=24802605367181b20bd90def3939b2d9f37b28ee;hb=6cc0700aa5b90500b620ca8dd5b2976892aee0a7;hpb=51aa7c917b3ecfb80d06d5a06cc9f553b8bc91c6 diff --git a/src/main.rs b/src/main.rs index 2480260..6c9ab27 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. }, @@ -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()) } );