diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server.rs | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/server.rs b/src/server.rs index ced51d1..035f39b 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,4 +1,4 @@ -use std::fs; +use crate::config::{ServerConfig, read_config}; use axum::body::{Body, HttpBody}; use axum::http::{HeaderMap, Request, Response, StatusCode, header}; use axum::middleware::Next; @@ -16,7 +16,6 @@ use std::path::Path; use std::pin::Pin; use std::sync::OnceLock; use tokio::net::TcpListener; -use crate::config::{read_config, ServerConfig}; static PUBLIC_KEY: OnceLock<VerifyingKey> = OnceLock::new(); static SERVER_CONFIG: OnceLock<ServerConfig> = OnceLock::new(); @@ -36,7 +35,7 @@ fn parse_header<T: std::str::FromStr>(headers: &HeaderMap, key: &str) -> Result< .ok_or(StatusCode::BAD_REQUEST) } -fn log_challenge(signature: &String, status: ChallengeStatus) { +fn log_challenge(signature: &str, status: ChallengeStatus) { let short_signature = signature.chars().take(10).collect::<String>(); match status { ChallengeStatus::BadTimestamp => println!( @@ -83,13 +82,13 @@ fn perform_download(file: String) -> Result<Response<Body>, StatusCode> { Ok(response) } -fn find_short_id_candidates(path: &String, vaults: ReadDir) -> Vec<String> { +fn find_short_id_candidates(path: &str, vaults: ReadDir) -> Vec<String> { let candidates: Vec<_> = vaults .filter_map(|entry| entry.ok()) .map(|entry| entry.path()) .filter(|entry| entry.is_file()) .map(|entry| entry.to_string_lossy().into_owned()) - .filter(|entry| entry[7..].starts_with(path.as_str())) + .filter(|entry| entry[7..].starts_with(path)) .collect(); candidates } @@ -179,13 +178,11 @@ async fn upload(mut body: Body) -> Result<StatusCode, StatusCode> { if path.is_file() && let Some(file_name) = path.file_name() + && file_name.to_string_lossy().starts_with(file_hash.as_str()) { - if file_name.to_string_lossy().starts_with(file_hash.as_str()) { - println!("[*] File already exists, doing nothing..."); - std::fs::remove_file(temp_filename) - .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; - return Ok(StatusCode::NOT_MODIFIED); - } + println!("[*] File already exists, doing nothing..."); + std::fs::remove_file(temp_filename).map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; + return Ok(StatusCode::NOT_MODIFIED); } } |
