From 65c63dfc5d70a4f8fe05c2f3cb4a0e1a1b67a3aa Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Fri, 24 Apr 2026 23:15:47 -0600 Subject: [PATCH] Always set user agent (#805) * Always set user agent * more --- src/retroachievements.rs | 15 ++------------- src/ui.rs | 11 +++++++++++ src/ui/gui.rs | 6 +----- src/ui/netplay.rs | 6 +++--- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/retroachievements.rs b/src/retroachievements.rs index 154a5420..7fdd7e0f 100644 --- a/src/retroachievements.rs +++ b/src/retroachievements.rs @@ -2,17 +2,6 @@ include!(concat!(env!("OUT_DIR"), "/retroachievements_bindings.rs")); use crate::ui; -static WEB_CLIENT: std::sync::LazyLock = std::sync::LazyLock::new(|| { - reqwest::Client::builder() - .user_agent(format!( - "{}/{}", - env!("CARGO_PKG_NAME"), - env!("GIT_DESCRIBE") - )) - .build() - .unwrap() -}); - #[derive(serde::Serialize, serde::Deserialize)] pub struct RAConfig { pub username: String, @@ -85,13 +74,13 @@ pub extern "C" fn rust_server_call( unsafe { std::ffi::CStr::from_ptr(c_post_data).to_str().unwrap() }.to_string(); let content_type = unsafe { std::ffi::CStr::from_ptr(c_content_type).to_str().unwrap() }.to_string(); - WEB_CLIENT + ui::WEB_CLIENT .post(url) .body(post_data) .header(reqwest::header::CONTENT_TYPE, content_type) .send() } else { - WEB_CLIENT.get(url).send() + ui::WEB_CLIENT.get(url).send() }; let callback = c_callback.addr(); let callback_data = c_callback_data.addr(); diff --git a/src/ui.rs b/src/ui.rs index c7e924a0..1ba7c648 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -15,6 +15,17 @@ pub mod video; #[cfg(feature = "gui")] pub mod vru; +pub static WEB_CLIENT: std::sync::LazyLock = std::sync::LazyLock::new(|| { + reqwest::Client::builder() + .user_agent(format!( + "{}/{}", + env!("CARGO_PKG_NAME"), + env!("GIT_DESCRIBE") + )) + .build() + .unwrap() +}); + pub struct Dirs { pub config_dir: std::path::PathBuf, pub data_dir: std::path::PathBuf, diff --git a/src/ui/gui.rs b/src/ui/gui.rs index d53c2577..c09d65e5 100644 --- a/src/ui/gui.rs +++ b/src/ui/gui.rs @@ -28,11 +28,7 @@ pub struct RASettings { } fn check_latest_version(weak: slint::Weak) { - let client = reqwest::Client::builder() - .user_agent(env!("CARGO_PKG_NAME")) - .build() - .unwrap(); - let task = client + let task = ui::WEB_CLIENT .get("https://api.github.com/repos/gopher64/gopher64/releases/latest") .send(); tokio::spawn(async move { diff --git a/src/ui/netplay.rs b/src/ui/netplay.rs index d90e0740..e9f4fc25 100644 --- a/src/ui/netplay.rs +++ b/src/ui/netplay.rs @@ -109,7 +109,7 @@ impl NetplayPages for NetplayJoin { } fn populate_server_names(weak: slint::Weak) { - let task = reqwest::Client::new() + let task = ui::WEB_CLIENT .get("https://dispatch.gopher64.com/getRegions") .header("netplay-id", env!("NETPLAY_ID")) .send(); @@ -292,7 +292,7 @@ pub fn setup_create_window( let weak_dialog = message_dialog.as_weak(); message_dialog.show().unwrap(); - let task = reqwest::Client::new() + let task = ui::WEB_CLIENT .get("https://dispatch.gopher64.com/createServer") .query(&[("region", server_url.strip_prefix("dispatcher:").unwrap())]) .header("netplay-id", env!("NETPLAY_ID")) @@ -448,7 +448,7 @@ fn show_netplay_error(message: String) { } fn update_sessions(weak: slint::Weak) { - let task = reqwest::Client::new() + let task = ui::WEB_CLIENT .get("https://dispatch.gopher64.com/getServers") .header("netplay-id", env!("NETPLAY_ID")) .send();