fix: do not use default value for os_version

This commit is contained in:
Kevin Yue 2025-01-21 00:14:13 +08:00
parent a7ad02acb6
commit c1427040f6
No known key found for this signature in database
GPG Key ID: 4D3A6EE977B15AC4

View File

@ -87,8 +87,8 @@ pub(crate) struct ConnectArgs {
#[arg(long, value_enum, default_value_t = ConnectArgs::default_os())] #[arg(long, value_enum, default_value_t = ConnectArgs::default_os())]
os: Os, os: Os,
#[arg(long, default_value_t = ConnectArgs::default_os_version())] #[arg(long, help = "If not specified, it will be computed based on the --os option")]
os_version: String, os_version: Option<String>,
#[arg(long, help = "Disable DTLS and ESP")] #[arg(long, help = "Disable DTLS and ESP")]
no_dtls: bool, no_dtls: bool,
@ -121,8 +121,12 @@ impl ConnectArgs {
} }
} }
fn default_os_version() -> String { fn os_version(&self) -> String {
match ConnectArgs::default_os() { if let Some(os_version) = self.os_version.as_deref() {
return os_version.to_string();
}
match self.os {
Os::Linux => format!("Linux {}", whoami::distro()), Os::Linux => format!("Linux {}", whoami::distro()),
Os::Windows => String::from("Microsoft Windows 11 Pro , 64-bit"), Os::Windows => String::from("Microsoft Windows 11 Pro , 64-bit"),
Os::Mac => String::from("Apple Mac OS X 13.4.0"), Os::Mac => String::from("Apple Mac OS X 13.4.0"),
@ -149,7 +153,7 @@ impl<'a> ConnectHandler<'a> {
GpParams::builder() GpParams::builder()
.user_agent(&self.args.user_agent) .user_agent(&self.args.user_agent)
.client_os(ClientOs::from(&self.args.os)) .client_os(ClientOs::from(&self.args.os))
.os_version(self.args.os_version.clone()) .os_version(self.args.os_version())
.ignore_tls_errors(self.shared_args.ignore_tls_errors) .ignore_tls_errors(self.shared_args.ignore_tls_errors)
.certificate(self.args.certificate.clone()) .certificate(self.args.certificate.clone())
.sslkey(self.args.sslkey.clone()) .sslkey(self.args.sslkey.clone())
@ -359,7 +363,7 @@ impl<'a> ConnectHandler<'a> {
None None
}; };
let os_version = self.args.os_version.clone(); let os_version = self.args.os_version();
let verbose = self.shared_args.verbose.to_verbose_arg(); let verbose = self.shared_args.verbose.to_verbose_arg();
let auth_launcher = SamlAuthLauncher::new(&self.args.server) let auth_launcher = SamlAuthLauncher::new(&self.args.server)
.gateway(is_gateway) .gateway(is_gateway)