diff --git a/src/server.rs b/src/server.rs index df351c6..050796d 100644 --- a/src/server.rs +++ b/src/server.rs @@ -38,7 +38,8 @@ pub async fn handle_connection( let current = ACTIVE_REQUESTS.fetch_add(1, Ordering::Relaxed); if current >= max_concurrent_requests { ACTIVE_REQUESTS.fetch_sub(1, Ordering::Relaxed); - return send_response(&mut stream, "41 Server unavailable\r\n").await; + // Rate limited - don't read request, just close connection + return Ok(()); } const MAX_REQUEST_SIZE: usize = 4096; @@ -65,6 +66,7 @@ pub async fn handle_connection( // Read successful, continue processing let request = String::from_utf8_lossy(&request_buf).trim().to_string(); + // Process the request // Validate request if request.is_empty() { let logger = RequestLogger::new(&stream, request); @@ -113,7 +115,7 @@ pub async fn handle_connection( let _ = send_response(&mut stream, "51 Not found\r\n").await; } } - }, + } Ok(Err(e)) => { // Read failed, check error type let request_str = String::from_utf8_lossy(&request_buf).trim().to_string();