From 16fc5a034f7ed2f15cf4a442b8190d6ff30ba9b7 Mon Sep 17 00:00:00 2001 From: Face <69168154+face-hh@users.noreply.github.com> Date: Tue, 2 Sep 2025 20:28:55 +0300 Subject: [PATCH] fix shit --- dns/src/gurt_server.rs | 4 +++- dns/src/gurt_server/routes.rs | 25 +++++++++++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/dns/src/gurt_server.rs b/dns/src/gurt_server.rs index 81c3e8f..da7dba6 100644 --- a/dns/src/gurt_server.rs +++ b/dns/src/gurt_server.rs @@ -346,7 +346,9 @@ async fn serve_static_file(ctx: &ServerContext) -> Result { .with_string_body("Invalid file path")); } - let frontend_dir = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("frontend"); + let current_dir = std::env::current_dir() + .map_err(|_| GurtError::invalid_message("Failed to get current directory"))?; + let frontend_dir = current_dir.join("frontend"); let full_path = frontend_dir.join(file_path); log::info!("Attempting to read file: '{}'", full_path.display()); diff --git a/dns/src/gurt_server/routes.rs b/dns/src/gurt_server/routes.rs index 76fafc9..043b2c3 100644 --- a/dns/src/gurt_server/routes.rs +++ b/dns/src/gurt_server/routes.rs @@ -21,12 +21,25 @@ fn parse_query_string(query: &str) -> HashMap { } pub(crate) async fn index(_app_state: AppState) -> Result { - let body = format!( - "GurtDNS v{}!\n\nThe available endpoints are:\n\n - [GET] /domains\n - [GET] /domain/{{name}}/{{tld}}\n - [POST] /domain\n - [PUT] /domain/{{key}}\n - [DELETE] /domain/{{key}}\n - [GET] /tlds\n\nRatelimits are as follows: 5 requests per 10 minutes on `[POST] /domain`.\n\nCode link: https://github.com/outpoot/gurted", - env!("CARGO_PKG_VERSION") - ); - - Ok(GurtResponse::ok().with_string_body(body)) + let current_dir = std::env::current_dir() + .map_err(|_| GurtError::invalid_message("Failed to get current directory"))?; + let frontend_dir = current_dir.join("frontend"); + let index_path = frontend_dir.join("index.html"); + + match tokio::fs::read_to_string(&index_path).await { + Ok(content) => { + Ok(GurtResponse::ok() + .with_header("Content-Type", "text/html") + .with_string_body(&content)) + } + Err(_) => { + let body = format!( + "GurtDNS v{}!\n\nThe available endpoints are:\n\n - [GET] /domains\n - [GET] /domain/{{name}}/{{tld}}\n - [POST] /domain\n - [PUT] /domain/{{key}}\n - [DELETE] /domain/{{key}}\n - [GET] /tlds\n\nRatelimits are as follows: 5 requests per 10 minutes on `[POST] /domain`.\n\nCode link: https://github.com/outpoot/gurted", + env!("CARGO_PKG_VERSION") + ); + Ok(GurtResponse::ok().with_string_body(&body)) + } + } } pub(crate) async fn create_logic(domain: Domain, user_id: i32, app: &AppState) -> Result {