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())]
os: Os,
#[arg(long, default_value_t = ConnectArgs::default_os_version())]
os_version: String,
#[arg(long, help = "If not specified, it will be computed based on the --os option")]
os_version: Option<String>,
#[arg(long, help = "Disable DTLS and ESP")]
no_dtls: bool,
@ -121,8 +121,12 @@ impl ConnectArgs {
}
}
fn default_os_version() -> String {
match ConnectArgs::default_os() {
fn os_version(&self) -> String {
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::Windows => String::from("Microsoft Windows 11 Pro , 64-bit"),
Os::Mac => String::from("Apple Mac OS X 13.4.0"),
@ -149,7 +153,7 @@ impl<'a> ConnectHandler<'a> {
GpParams::builder()
.user_agent(&self.args.user_agent)
.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)
.certificate(self.args.certificate.clone())
.sslkey(self.args.sslkey.clone())
@ -359,7 +363,7 @@ impl<'a> ConnectHandler<'a> {
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 auth_launcher = SamlAuthLauncher::new(&self.args.server)
.gateway(is_gateway)