aboutsummaryrefslogtreecommitdiff
path: root/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.rs')
-rw-r--r--src/server.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/server.rs b/src/server.rs
index b6e8110..76be5a7 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -3,6 +3,7 @@ use std::io::Write;
use std::net::SocketAddr;
use std::path::PathBuf;
use std::pin::Pin;
+use std::str::FromStr;
use std::sync::{Arc, Mutex};
use http_body_util::{BodyExt, Collected, Full};
@@ -19,7 +20,7 @@ use color_eyre::Result;
use mlua::Lua;
pub struct Server {
- port: u16,
+ addr: SocketAddr,
state: State,
}
@@ -30,18 +31,20 @@ struct State {
}
impl Server {
- pub async fn serve(lua: Lua, port: u16, public_dir: Option<PathBuf>) -> Result<()> {
+ pub async fn serve(lua: Lua, address: &str, public_dir: Option<PathBuf>) -> Result<()> {
let state = State {
lua: Arc::new(Mutex::new(lua)),
public_dir,
};
- let server = Self { port, state };
+
+ let addr: SocketAddr = SocketAddr::from_str(address)?;
+
+ let server = Self { addr, state };
server.start().await
}
async fn start(self) -> Result<()> {
- let addr = SocketAddr::from(([127, 0, 0, 1], self.port));
- let listener = TcpListener::bind(addr).await?;
+ let listener = TcpListener::bind(self.addr).await?;
let state = self.state;