X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=src%2Fmain.rs;h=7a179af2ef6d935bdfd003bd82ae7061f639755a;hb=7b132e2976883c7b8e63540129a36eb63ceb33c5;hp=24cfdbb51886fee26528c4463728abd69ab1fabc;hpb=8834567b2f53bad60b9d77ff7970077f9af0888d;p=rup.git diff --git a/src/main.rs b/src/main.rs index 24cfdbb..7a179af 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,13 @@ use listenfd::ListenFd; use actix_files as fs; use actix_web::{web, middleware, App, HttpServer, HttpResponse, Responder, Result, web::Query}; use askama::Template; -use serde::{Deserialize}; + +use ron::de::from_reader; +use serde::Deserialize; +use std::fs::File; + +mod consts; +mod crypto; #[derive(Template)] #[template(path = "main.html")] @@ -19,20 +25,44 @@ pub struct Request { m: Option } +static DEFAULT_MESSAGE: &str = "Marc, roule un pet'!"; +static KEY: &str = "secret"; + fn main_page(query: Query) -> Result { let m = match &query.m { - Some(b) => &b, - None => "Marc, roule un pet'!" + Some(b) => + match crypto::decrypt(KEY, b) { + Some(m) => m, + None => String::from(DEFAULT_MESSAGE) + }, + None => String::from(DEFAULT_MESSAGE) }; - let hello = MainTemplate { sentence: m }; + let hello = MainTemplate { sentence: &m }; let s = hello.render().unwrap(); Ok(HttpResponse::Ok().content_type("text/html").body(s)) } +#[derive(Debug, Deserialize)] +struct Config { + port: u16 +} + fn main() -> std::io::Result<()> { + println!("Starting RUP..."); + + let config: Config = { + let f = File::open(consts::FILE_CONF).expect(&format!("Failed to open configuration file {}", consts::FILE_CONF)); + match from_reader(f) { + Ok(c) => c, + Err(e) => panic!("Failed to load config: {}", e) + } + }; + + println!("Configuration: {:?}", config); + let mut listenfd = ListenFd::from_env(); let mut server = HttpServer::new( @@ -49,7 +79,7 @@ fn main() -> std::io::Result<()> { if let Some(l) = listenfd.take_tcp_listener(0).unwrap() { server.listen(l).unwrap() } else { - server.bind("0.0.0.0:8082").unwrap() + server.bind(&format!("0.0.0.0:{}", config.port)).unwrap() }; server.run()