From dbe27dc9cdc62740687963c4a3564244cfdc3379 Mon Sep 17 00:00:00 2001 From: "DESKTOP-L0UFILQ\\zhigang" Date: Fri, 27 Jun 2025 12:40:52 +0800 Subject: [PATCH] fix --- crates/utils/src/sys/user_agent.rs | 36 ++++++++++-------------------- rustfs/src/server/service_state.rs | 1 + 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/crates/utils/src/sys/user_agent.rs b/crates/utils/src/sys/user_agent.rs index 99d53ffc..78360bfd 100644 --- a/crates/utils/src/sys/user_agent.rs +++ b/crates/utils/src/sys/user_agent.rs @@ -70,23 +70,11 @@ impl UserAgent { #[cfg(windows)] fn get_windows_platform() -> String { // Priority to using sysinfo to get versions - if let Some(version) = System::os_version() { - format!("Windows NT {}", version) - } else { - // Fallback to cmd /c ver - let output = std::process::Command::new("cmd") - .args(&["/C", "ver"]) - .output() - .unwrap_or_default(); - let version = String::from_utf8_lossy(&output.stdout); - let version = version - .lines() - .next() - .unwrap_or("Windows NT 10.0") - .replace("Microsoft Windows [Version ", "") - .replace("]", ""); - format!("Windows NT {}", version.trim()) - } + let version = match System::os_version() { + Some(version) => version, + None => "Windows NT Unknown".to_string(), + }; + format!("Windows NT {}", version) } #[cfg(not(windows))] @@ -131,11 +119,11 @@ impl UserAgent { impl fmt::Display for UserAgent { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { if self.service == ServiceType::Basis { - return write!(f, "Mozilla/5.0 ({}; {}) Rustfs/{}", self.os_platform, self.arch, self.version); + return write!(f, "Mozilla/5.0 ({}; {}) RustFS/{}", self.os_platform, self.arch, self.version); } write!( f, - "Mozilla/5.0 ({}; {}) Rustfs/{} ({})", + "Mozilla/5.0 ({}; {}) RustFS/{} ({})", self.os_platform, self.arch, self.version, @@ -157,7 +145,7 @@ mod tests { fn test_user_agent_format_basis() { let ua = get_user_agent(ServiceType::Basis); assert!(ua.starts_with("Mozilla/5.0")); - assert!(ua.contains("Rustfs/1.0.0")); + assert!(ua.contains("RustFS/1.0.0")); println!("User-Agent: {}", ua); } @@ -165,7 +153,7 @@ mod tests { fn test_user_agent_format_core() { let ua = get_user_agent(ServiceType::Core); assert!(ua.starts_with("Mozilla/5.0")); - assert!(ua.contains("Rustfs/1.0.0 (core)")); + assert!(ua.contains("RustFS/1.0.0 (core)")); println!("User-Agent: {}", ua); } @@ -173,7 +161,7 @@ mod tests { fn test_user_agent_format_event() { let ua = get_user_agent(ServiceType::Event); assert!(ua.starts_with("Mozilla/5.0")); - assert!(ua.contains("Rustfs/1.0.0 (event)")); + assert!(ua.contains("RustFS/1.0.0 (event)")); println!("User-Agent: {}", ua); } @@ -181,7 +169,7 @@ mod tests { fn test_user_agent_format_logger() { let ua = get_user_agent(ServiceType::Logger); assert!(ua.starts_with("Mozilla/5.0")); - assert!(ua.contains("Rustfs/1.0.0 (logger)")); + assert!(ua.contains("RustFS/1.0.0 (logger)")); println!("User-Agent: {}", ua); } @@ -189,7 +177,7 @@ mod tests { fn test_user_agent_format_custom() { let ua = get_user_agent(ServiceType::Custom("monitor".to_string())); assert!(ua.starts_with("Mozilla/5.0")); - assert!(ua.contains("Rustfs/1.0.0 (monitor)")); + assert!(ua.contains("RustFS/1.0.0 (monitor)")); println!("User-Agent: {}", ua); } diff --git a/rustfs/src/server/service_state.rs b/rustfs/src/server/service_state.rs index a54c68fe..d01093db 100644 --- a/rustfs/src/server/service_state.rs +++ b/rustfs/src/server/service_state.rs @@ -2,6 +2,7 @@ use atomic_enum::atomic_enum; use std::sync::Arc; use std::sync::atomic::Ordering; use std::time::Duration; +#[cfg(unix)] use tokio::signal::unix::{SignalKind, signal}; use tracing::info;