From 77e29361812c1d9cf0adb55f09218f20598643dc Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 15 Mar 2025 12:55:42 +0800 Subject: [PATCH] Add basic system path parsing --- req.ha | 23 +++++++++++++++++++++++ diff --git a/req.ha b/req.ha index dd196648d95fb4d6c05c37fbdb5bbea7ae564a71..2efa8428f1ded25e9891987adb6b58e967109bd3 100644 --- a/req.ha +++ b/req.ha @@ -30,6 +30,29 @@ if (segments[0] == ":") { if (len(segments) == 1) { start_response(conn, 404, "text/plain")?; fmt::fprintln(conn, "Error: Blank system endpoint")?; + return; + }; + + switch (segments[1]) { + case "static" => + if (len(segments) == 2) { + start_response(conn, 404, "text/plain")?; + fmt::fprintln(conn, "Error: Blank static endpoint")?; + return; + }; + let fs_segments = segments[2 ..]; + for (let fs_segment .. fs_segments) { + if (strings::contains(fs_segment, "/")) { + start_response(conn, 400, "text/plain")?; + fmt::fprintln(conn, "Error: Slash found in filesystem path")?; + return; + }; + }; + start_response(conn, 501, "text/plain")?; + fmt::fprintln(conn, "Not implemented yet")?; + case => + start_response(conn, 404, "text/plain")?; + fmt::fprintln(conn, "Error: Unknown system endpoint")?; }; }; }; -- 2.48.1