diff --git a/core/http/src/handlers/handlers.rs b/core/http/src/handlers/handlers.rs index 44599689c87c9426bd20f6e796f977ca8116afaa..0f724cd86990039c4a096f43efb76a053e3f13f2 100755 --- a/core/http/src/handlers/handlers.rs +++ b/core/http/src/handlers/handlers.rs @@ -14,7 +14,7 @@ static MAX_HTTPMESSAGE_SIZE: u16 = 4196; pub async fn handle_connection(mut stream: TcpStream, mountpoints: Vec<MountPoint<'_>>) { let mut buf_reader = BufReader::new(&mut stream); - let mut http_request: Vec<String> = Vec::with_capacity(30); + let mut http_request: Vec<String> = Vec::with_capacity(10); loop { let mut buffer = String::new(); if let Err(_) = buf_reader.read_line(&mut buffer).await { @@ -27,8 +27,6 @@ pub async fn handle_connection(mut stream: TcpStream, mountpoints: Vec<MountPoin http_request.push(buffer); } - // println!("{:#?}", http_request); - let request_status_line = if let Some(status_line) = http_request.get(0).cloned() { status_line } else { diff --git a/core/http/src/handling/request.rs b/core/http/src/handling/request.rs index ff7e33876d7f6ce053c98ff169d87eca8a505c20..ff4db83ed1bee70488bae7c4f82ef6b46b0088d9 100644 --- a/core/http/src/handling/request.rs +++ b/core/http/src/handling/request.rs @@ -2,6 +2,8 @@ use std::{collections::HashMap, error::Error, fmt::Display}; +use tokio::io::BufReader; + use crate::utils::mime::mime_enum::Mime; static TWO_NEWLINES: u8 = 3; @@ -211,7 +213,16 @@ impl Request<'_> { }; Ok(keymap) } - fn get_multipart( + fn decode_multipart<'a>( + data: &Data, + keys: &[&'a str], + ) -> HashMap<String, Result<Vec<u8>, ParseFormError>> { + let mut data = data.buffer.as_ref(); + let mut buf_reader = BufReader::new(&mut data); + let mut http_request: Vec<String> = Vec::with_capacity(2); + todo!() + } + fn get_multipart_data( data: &[u8], boundary: &[u8], end_boundary: &[u8],