diff options
| author | Fuwn <[email protected]> | 2021-03-29 15:16:27 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-03-29 15:16:27 -0700 |
| commit | 33d2f1bdb37c3fd03c6cec02c70bc5afd09cbf92 (patch) | |
| tree | 2596c7ac6acb3830402e6cff6fb78279faffeec8 | |
| parent | format: Refactor SQL snippet for consistency (diff) | |
| download | whirl-33d2f1bdb37c3fd03c6cec02c70bc5afd09cbf92.tar.xz whirl-33d2f1bdb37c3fd03c6cec02c70bc5afd09cbf92.zip | |
feature: Grab ports AutoServer and RoomServer from config
This is mostly a developmental feature.
Tampering with this is not recommended.
| -rw-r--r-- | src/config.rs | 5 | ||||
| -rw-r--r-- | src/main.rs | 15 | ||||
| -rw-r--r-- | src/server/auto/server.rs | 2 | ||||
| -rw-r--r-- | src/server/room/server.rs | 2 |
4 files changed, 18 insertions, 6 deletions
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<dyn Error>> { @@ -24,22 +25,28 @@ async fn main() -> Result<(), Box<dyn Error>> { // 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<dyn Error>> { 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<dyn Error>> { + pub async fn new(addr: &str) -> Result<(), Box<dyn Error>> { 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<dyn Error>> { + pub async fn new(addr: &str) -> Result<(), Box<dyn Error>> { let listener = TcpListener::bind(addr).await?; debug!("RoomServer now listening on {}", listener.local_addr().unwrap()); let state = Arc::new(Mutex::new(Shared::new())); |