From 31f29ad0df0af5bedad173bfa5e4114b33aabe86 Mon Sep 17 00:00:00 2001 From: Darius Auding <Darius.auding@gmx.de> Date: Wed, 21 Jun 2023 22:03:45 +0200 Subject: [PATCH] Start working on cookies --- core/http/src/handlers/handlers.rs | 5 ++++- core/http/src/handling/request.rs | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/http/src/handlers/handlers.rs b/core/http/src/handlers/handlers.rs index b0b2c19..df6ec34 100755 --- a/core/http/src/handlers/handlers.rs +++ b/core/http/src/handlers/handlers.rs @@ -26,6 +26,7 @@ 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 @@ -33,6 +34,7 @@ pub async fn handle_connection(mut stream: TcpStream, mountpoints: Vec<MountPoin eprintln!("\x1b[31mAborting due to missing headers\x1b[0m"); return; }; + let request = Request { uri: if let Some(uri) = &request_status_line.split(" ").nth(1) { *uri @@ -40,6 +42,7 @@ pub async fn handle_connection(mut stream: TcpStream, mountpoints: Vec<MountPoin eprintln!("\x1b[31mAborting due to invalid status line\x1b[0m"); return; }, + cookies: None, headers: http_request, method: if let Some(method) = request_status_line .split(" ") @@ -53,7 +56,7 @@ pub async fn handle_connection(mut stream: TcpStream, mountpoints: Vec<MountPoin } else { eprintln!("\x1b[31mAborting due to invalid status line\x1b[0m"); return; - } + }, }; let mut data = Data { diff --git a/core/http/src/handling/request.rs b/core/http/src/handling/request.rs index 5731425..8841901 100644 --- a/core/http/src/handling/request.rs +++ b/core/http/src/handling/request.rs @@ -37,6 +37,7 @@ pub struct Request<'a> { pub uri: Uri<'a>, pub headers: HeaderMap, pub method: Method, + pub cookies: Option<Vec<&'a str>>, // pub connection: ConnectionMeta, } @@ -316,6 +317,7 @@ mod test { uri: "", headers: vec!["Content-Type: application/x-www-form-urlencoded".to_string()], method: crate::handling::methods::Method::Post, + cookies: None, }; let data = Data { buffer: b"message=23&message1=24".to_vec(), @@ -334,6 +336,7 @@ mod test { uri: "", headers: vec!["Content-Type: multipart/form-data; boundary=\"boundary\"".to_string()], method: crate::handling::methods::Method::Post, + cookies: None, }; let data = Data { buffer: b"--boundary\r -- GitLab