From 7b17343c72ea080c73d329d0e7dfbdc9e8206969 Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Mon, 3 Aug 2026 08:11:57 -0600 Subject: [PATCH] update netplay id (#1171) --- src/ui/netplay.rs | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/ui/netplay.rs b/src/ui/netplay.rs index 300fdb8..89ba1e9 100644 --- a/src/ui/netplay.rs +++ b/src/ui/netplay.rs @@ -3,6 +3,7 @@ use crate::netplay::RtcIceServerConfig; use crate::ui; use crate::ui::gui::{AppWindow, open_uri, run_rom, save_settings}; use futures::{SinkExt, StreamExt}; +use sha2::digest::Digest; use slint::ComponentHandle; use slint::Model; use tokio_tungstenite::tungstenite::Bytes; @@ -294,10 +295,23 @@ fn manage_websocket( .unwrap_or("wss://netplay.gopher64.com".to_string()) .into_client_request() .unwrap(); - request.headers_mut().insert( - "Authorization", - obfstr::obfstr!(env!("NETPLAY_ID")).parse().unwrap(), - ); + + let mut hasher = sha2::Sha256::new(); + let now = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_millis(); + hasher.update(obfstr::obfstr!(env!("NETPLAY_ID"))); + hasher.update(now.to_string()); + let hash: String = hasher + .finalize() + .iter() + .map(|b| format!("{:02X}", b)) + .collect(); + request + .headers_mut() + .insert("Authorization", format!("{hash}_{now}").parse().unwrap()); + tokio::spawn(async move { match tokio::time::timeout( std::time::Duration::from_secs(3),