From 33d2f1bdb37c3fd03c6cec02c70bc5afd09cbf92 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 29 Mar 2021 15:16:27 -0700 Subject: feature: Grab ports AutoServer and RoomServer from config This is mostly a developmental feature. Tampering with this is not recommended. --- src/config.rs | 5 +++++ src/main.rs | 15 +++++++++++---- src/server/auto/server.rs | 2 +- src/server/room/server.rs | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/config.rs b/src/config.rs index 13ffa61..bddf6a4 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,13 +1,18 @@ use serde_derive::{Serialize, Deserialize}; + #[derive(Debug, Serialize, Deserialize)] pub struct Config { pub worldsmaster_greeting: String, + pub auto_server_port: i32, + pub room_server_port: i32, } impl Default for Config { fn default() -> Self { Config { worldsmaster_greeting: "Welcome to Whirlsplash!".to_string(), + auto_server_port: 6650, + room_server_port: 5673, } } } diff --git a/src/main.rs b/src/main.rs index 3d9547a..322eabd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ use whirl::server::room::server::RoomServer; use structopt::StructOpt; use whirl::config; use whirl::cli::Command; +use whirl::config::get_config; #[tokio::main] async fn main() -> Result<(), Box> { @@ -24,22 +25,28 @@ async fn main() -> Result<(), Box> { // Handle CLI command match opt.command { - Command::Run => run().await, + Command::Run => run().await.unwrap(), Command::Config => println!("{:#?}", config::get_config()), } Ok(()) } -async fn run() { +async fn run() -> Result<(), Box> { let mut threads = vec![]; threads.push(tokio::spawn(async move { - let _ = AutoServer::new("0.0.0.0:6650").await; + let _ = AutoServer::new( + &*format!("0.0.0.0:{}", get_config().unwrap().auto_server_port) + ).await; })); threads.push(tokio::spawn(async move { - let _ = RoomServer::new("0.0.0.0:5673").await; + let _ = RoomServer::new( + &*format!("0.0.0.0:{}", get_config().unwrap().room_server_port) + ).await; })); for thread in threads { let _ = thread.await; } + + Ok(()) } diff --git a/src/server/auto/server.rs b/src/server/auto/server.rs index 7f5781f..6e33dd7 100644 --- a/src/server/auto/server.rs +++ b/src/server/auto/server.rs @@ -23,7 +23,7 @@ use crate::config::get_config; pub struct AutoServer; impl AutoServer { - pub async fn new(addr: &'static str) -> Result<(), Box> { + pub async fn new(addr: &str) -> Result<(), Box> { let listener = TcpListener::bind(addr).await?; debug!("AutoServer now listening on {}", listener.local_addr().unwrap()); let state = Arc::new(Mutex::new(Shared::new())); diff --git a/src/server/room/server.rs b/src/server/room/server.rs index 48b4d5c..415daab 100644 --- a/src/server/room/server.rs +++ b/src/server/room/server.rs @@ -23,7 +23,7 @@ use crate::server::cmd::property::parse_property_set_command; pub struct RoomServer; impl RoomServer { - pub async fn new(addr: &'static str) -> Result<(), Box> { + pub async fn new(addr: &str) -> Result<(), Box> { let listener = TcpListener::bind(addr).await?; debug!("RoomServer now listening on {}", listener.local_addr().unwrap()); let state = Arc::new(Mutex::new(Shared::new())); -- cgit v1.2.3