Browse Source

Code cleanup

* Moved router into the server module
* Added host and worker configuration arguments
master
Drew Short 6 years ago
parent
commit
cf605b4641
  1. 1
      Cargo.lock
  2. 1
      Cargo.toml
  3. 30
      src/main.rs
  4. 1
      src/server/mod.rs
  5. 0
      src/server/router.rs

1
Cargo.lock

@ -1134,6 +1134,7 @@ dependencies = [
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
"yaml-rust 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",

1
Cargo.toml

@ -14,6 +14,7 @@ bytes = "0.4.10"
clap = "2.32.0"
log = "0.4.0"
env_logger = "0.5.13"
num_cpus = "1.0"
yaml-rust = "0.4.0"
serde = "1.0.78"
serde_derive = "1.0.78"

30
src/main.rs

@ -8,11 +8,11 @@ extern crate bytes;
extern crate clap;
extern crate env_logger;
extern crate futures;
extern crate num_cpus;
extern crate serde;
use clap::{App, Arg};
mod router;
mod server;
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
@ -36,6 +36,13 @@ fn main() {
.default_value("/etc/rsddns/rsddns.yml")
.help("Set a custom configuration file path.")
.takes_value(true),
Arg::with_name("host")
.short("h")
.long("host")
.value_name("HOST")
.default_value("localhost")
.help("The address the server listens on.")
.takes_value(true),
Arg::with_name("port")
.short("p")
.long("port")
@ -43,20 +50,35 @@ fn main() {
.default_value("8080")
.help("The port to run the server on.")
.takes_value(true),
Arg::with_name("workers")
.short("w")
.long("workers")
.value_name("NUMBER")
.help("The number of workers to serve requests with.")
.takes_value(true),
])
.get_matches();
let config: &str = args.value_of("config").unwrap_or("/etc/rsddns/rsddns.yml");
let host: &str = args.value_of("host").unwrap_or("localhost");
let port: i32 = args
.value_of("port")
.unwrap()
.parse::<i32>()
.unwrap_or(8080);
let workers: usize = match args.value_of("workers") {
Some(count) => count.parse::<usize>().unwrap_or(num_cpus::get()),
None => num_cpus::get(),
};
info!("Starting server on {} with config {}", port, config);
info!(
"Starting server on {}:{} with workers={} and config {}",
host, port, workers, config
);
actix_web::server::new(|| router::create())
.bind(format!("localhost:{}", port))
actix_web::server::new(|| server::router::create())
.workers(workers)
.bind(format!("{}:{}", host, port))
.unwrap()
.run();
}

1
src/server/mod.rs

@ -3,6 +3,7 @@ use actix_web::{HttpRequest, Json, Result};
use VERSION;
pub mod api;
pub mod router;
#[derive(Serialize)]
pub struct Health {

0
src/router.rs → src/server/router.rs

Loading…
Cancel
Save