aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-03-29 15:16:27 -0700
committerFuwn <[email protected]>2021-03-29 15:16:27 -0700
commit33d2f1bdb37c3fd03c6cec02c70bc5afd09cbf92 (patch)
tree2596c7ac6acb3830402e6cff6fb78279faffeec8
parentformat: Refactor SQL snippet for consistency (diff)
downloadwhirl-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.rs5
-rw-r--r--src/main.rs15
-rw-r--r--src/server/auto/server.rs2
-rw-r--r--src/server/room/server.rs2
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()));