X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=src%2Fmain.rs;h=15b9c025f67bb86acb9d93be0d2b1e89c0272c07;hb=331dddcaef970033db01dc9d239818417ed2e750;hp=f1e66ee9639ff6edf8e62c1dcf54c80c768d88f7;hpb=c1a5fe1d8e733d744a94acf278903133e2a72115;p=rup.git diff --git a/src/main.rs b/src/main.rs index f1e66ee..15b9c02 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ extern crate percent_encoding; use listenfd::ListenFd; use actix_files as fs; -use actix_web::{web, middleware, App, HttpServer, HttpResponse, Responder, Result, web::Query}; +use actix_web::{web, middleware, App, HttpServer, HttpResponse, web::Query}; use askama::Template; use std::io::prelude::*; @@ -29,7 +29,7 @@ pub struct Request { m: Option } -fn main_page(query: Query, key: &str) -> Result { +fn main_page(query: Query, key: &str) -> HttpResponse { let m = match &query.m { Some(b) => @@ -43,7 +43,7 @@ fn main_page(query: Query, key: &str) -> Result { let hello = MainTemplate { sentence: &m }; let s = hello.render().unwrap(); - Ok(HttpResponse::Ok().content_type("text/html").body(s)) + HttpResponse::Ok().content_type("text/html").body(s) } #[derive(Debug, Deserialize)] @@ -60,18 +60,19 @@ fn get_exe_name() -> String { fn read_key() -> String { let mut key = String::new(); File::open(consts::FILE_KEY) - .expect(&format!("Failed to open key file: {}", consts::FILE_KEY)) + .unwrap_or_else(|_| panic!("Failed to open key file: {}", consts::FILE_KEY)) .read_to_string(&mut key) - .expect(&format!("Failed to read key file: {}", consts::FILE_KEY)); + .unwrap_or_else(|_| panic!("Failed to read key file: {}", consts::FILE_KEY)); String::from( percent_encoding::percent_decode(key.replace('\n', "").as_bytes()) .decode_utf8() - .expect(&format!("Failed to decode key file: {}", consts::FILE_KEY)) + .unwrap_or_else(|_| panic!("Failed to decode key file: {}", consts::FILE_KEY)) ) } -fn main() -> std::io::Result<()> { +#[actix_rt::main] +async fn main() -> std::io::Result<()> { let key = read_key(); if process_args(&key) { return Ok(()) } @@ -79,7 +80,7 @@ fn main() -> std::io::Result<()> { println!("Starting RUP as web server..."); let config: Config = { - let f = File::open(consts::FILE_CONF).expect(&format!("Failed to open configuration file {}", consts::FILE_CONF)); + let f = File::open(consts::FILE_CONF).unwrap_or_else(|_| panic!("Failed to open configuration file {}", consts::FILE_CONF)); match from_reader(f) { Ok(c) => c, Err(e) => panic!("Failed to load config: {}", e) @@ -109,10 +110,10 @@ fn main() -> std::io::Result<()> { server.bind(&format!("0.0.0.0:{}", config.port)).unwrap() }; - server.run() + server.run().await } -fn process_args(key: &String) -> bool { +fn process_args(key: &str) -> bool { fn print_usage() { println!("Usage:"); println!(" {} [--help] [--encrypt |--decrypt ]", get_exe_name()); @@ -124,7 +125,7 @@ fn process_args(key: &String) -> bool { print_usage(); return true } else if let Some((position_arg_encrypt, _)) = args.iter().find_position(|arg| arg == &"--encrypt") { - match args.iter().nth(position_arg_encrypt + 1) { + match args.get(position_arg_encrypt + 1) { Some(mess_to_encrypt) => { match crypto::encrypt(&key, mess_to_encrypt) { Ok(encrypted_mess) => { @@ -139,7 +140,7 @@ fn process_args(key: &String) -> bool { return true } else if let Some((position_arg_decrypt, _)) = args.iter().find_position(|arg| arg == &"--decrypt") { - match args.iter().nth(position_arg_decrypt + 1) { + match args.get(position_arg_decrypt + 1) { Some(cipher_text) => { let cipher_text_decoded = percent_encoding::percent_decode(cipher_text.as_bytes()).decode_utf8().expect("Unable to decode encoded cipher text"); match crypto::decrypt(&key, &cipher_text_decoded) { @@ -155,5 +156,5 @@ fn process_args(key: &String) -> bool { return true } - return false + false }