aboutsummaryrefslogtreecommitdiff
path: root/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.rs')
-rw-r--r--src/server.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server.rs b/src/server.rs
index 05f7f26..16b543e 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -26,11 +26,11 @@ pub struct Server {
#[derive(Clone)]
struct State {
lua: Arc<Mutex<Lua>>,
- public_dir: PathBuf,
+ public_dir: Option<PathBuf>,
}
impl Server {
- pub async fn serve(lua: Lua, port: u16, public_dir: PathBuf) -> Result<()> {
+ pub async fn serve(lua: Lua, port: u16, public_dir: Option<PathBuf>) -> Result<()> {
let state = State {
lua: Arc::new(Mutex::new(lua)),
public_dir,
@@ -140,9 +140,13 @@ impl State {
let status =
StatusCode::from_u16(res.0 as u16).unwrap_or(StatusCode::INTERNAL_SERVER_ERROR);
- if status == StatusCode::NOT_FOUND {
+ if status == StatusCode::NOT_FOUND && self.public_dir.is_some() {
// try to serve a static file
- let path = self.public_dir.join(path.trim_start_matches('/'));
+ let path = self
+ .public_dir
+ .clone()
+ .unwrap()
+ .join(path.trim_start_matches('/'));
if path.is_file() {
return mk_file_response(path);