From f98c9ccc71ab2d18d90db9a523058a74a4c68286 Mon Sep 17 00:00:00 2001 From: Xevion Date: Mon, 23 Dec 2024 18:52:26 -0600 Subject: [PATCH] Switch cookie id to u32 as well --- frontend/src/components/Demo.tsx | 2 +- src/main.rs | 10 +++++----- src/models.rs | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/Demo.tsx b/frontend/src/components/Demo.tsx index 88e5bc8..9b4079a 100644 --- a/frontend/src/components/Demo.tsx +++ b/frontend/src/components/Demo.tsx @@ -41,7 +41,7 @@ const Demo = ({ class: className }: DemoProps) => { session.
Your session is{" "} - + {id != null ? toHex(id) : null} . You have{" "} diff --git a/src/main.rs b/src/main.rs index c735464..be5b780 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,7 +29,7 @@ async fn session_middleware(req: &mut Request, res: &mut Response, depot: &mut D match req.cookie("Session") { Some(cookie) => { // Check if the session exists - match cookie.value().parse::() { + match cookie.value().parse::() { Ok(session_id) => { let mut store = STORE.lock().await; if !store.sessions.contains_key(&session_id) { @@ -75,7 +75,7 @@ async fn connect(req: &mut Request, res: &mut Response, depot: &Depot) -> Result .await } -async fn handle_socket(session_id: usize, websocket: WebSocket) { +async fn handle_socket(session_id: u32, websocket: WebSocket) { // Split the socket into a sender and receive of messages. let (socket_tx, mut socket_rx) = websocket.split(); @@ -220,14 +220,14 @@ pub async fn get_session(req: &mut Request, res: &mut Response, depot: &mut Depo } // Acquires the session id from the request, preferring the depot -fn get_session_id(req: &Request, depot: &Depot) -> Option { +fn get_session_id(req: &Request, depot: &Depot) -> Option { if depot.contains_key("session_id") { - return Some(*depot.get::("session_id").unwrap()); + return Some(*depot.get::("session_id").unwrap()); } // Otherwise, just use whatever the Cookie might have match req.cookie("Session") { - Some(cookie) => match cookie.value().parse::() { + Some(cookie) => match cookie.value().parse::() { Ok(id) => Some(id), _ => None, }, diff --git a/src/models.rs b/src/models.rs index 519c7d2..8ad7436 100644 --- a/src/models.rs +++ b/src/models.rs @@ -8,7 +8,7 @@ use crate::utility::search; #[derive(Debug, Serialize, Clone)] pub struct Session { - pub id: usize, + pub id: u32, pub downloads: Vec, pub first_seen: chrono::DateTime, @@ -89,7 +89,7 @@ pub struct State<'a> { // A map of executables, keyed by their type/platform pub executables: HashMap<&'a str, Executable>, // A map of sessions, keyed by their identifier (a random number) - pub sessions: HashMap, + pub sessions: HashMap, } impl<'a> State<'a> { @@ -126,9 +126,9 @@ impl<'a> State<'a> { self.executables.insert(exe_type, exe); } - pub async fn new_session(&mut self, res: &mut Response) -> usize { + pub async fn new_session(&mut self, res: &mut Response) -> u32 { let mut rng = rand::thread_rng(); - let id: usize = rng.gen(); + let id: u32 = rng.gen(); let now = chrono::Utc::now(); self.sessions.insert(