.enable(Frame::Deny)
.enable(Referrer::NoReferrer);
- let r = rocket::ignite()
+ let config = config();
+
+ let mut cbuilder = rocket::config::Config::build(
+ if config.debug {
+ rocket::config::Environment::Development
+ } else {
+ eprintln!("requesting Production");
+ rocket::config::Environment::Production
+ }
+ );
+
+ if config.debug {
+ cbuilder = cbuilder.address("127.0.0.1")
+ }
+ cbuilder = cbuilder.workers(config.rocket_workers);
+ if let Some(port) = config.http_port {
+ cbuilder = cbuilder.port(port);
+ }
+ let rconfig = cbuilder.finalize()?;
+
+ let r = rocket::custom(rconfig)
.attach(helmet)
.attach(Template::fairing())
.mount("/", routes![
pub save_directory: Option<String>,
pub command_socket: Option<String>,
pub debug: Option<bool>,
+ pub http_port: Option<u16>,
+ pub rocket_workers: Option<u16>,
}
#[derive(Debug,Clone)]
pub save_directory: String,
pub command_socket: String,
pub debug: bool,
+ pub http_port: Option<u16>,
+ pub rocket_workers: u16,
}
impl TryFrom<ServerConfigSpec> for ServerConfig {
fn try_from(spec: ServerConfigSpec) -> ServerConfig {
let ServerConfigSpec {
save_directory, command_socket, debug,
+ http_port, rocket_workers,
} = spec;
let save_directory = save_directory
}
let debug = debug.unwrap_or(cfg!(debug_assertions));
+ let rocket_workers = rocket_workers.unwrap_or(
+ if debug { 20 } else { 1000 });
ServerConfig {
save_directory, command_socket, debug,
+ http_port, rocket_workers,
}
}
}