Compare commits

..

2 Commits

Author SHA1 Message Date
Kevin Yue
9317430968 Release 2.3.5 2024-08-14 22:47:08 +08:00
Kevin Yue
f92b04e99a use --browser option 2024-08-14 22:42:35 +08:00
6 changed files with 28 additions and 21 deletions

14
Cargo.lock generated
View File

@@ -570,7 +570,7 @@ dependencies = [
[[package]] [[package]]
name = "common" name = "common"
version = "2.3.4" version = "2.3.5"
dependencies = [ dependencies = [
"is_executable", "is_executable",
] ]
@@ -1430,7 +1430,7 @@ dependencies = [
[[package]] [[package]]
name = "gpapi" name = "gpapi"
version = "2.3.4" version = "2.3.5"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"base64 0.21.5", "base64 0.21.5",
@@ -1465,7 +1465,7 @@ dependencies = [
[[package]] [[package]]
name = "gpauth" name = "gpauth"
version = "2.3.4" version = "2.3.5"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@@ -1486,7 +1486,7 @@ dependencies = [
[[package]] [[package]]
name = "gpclient" name = "gpclient"
version = "2.3.4" version = "2.3.5"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@@ -1508,7 +1508,7 @@ dependencies = [
[[package]] [[package]]
name = "gpgui-helper" name = "gpgui-helper"
version = "2.3.4" version = "2.3.5"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@@ -1526,7 +1526,7 @@ dependencies = [
[[package]] [[package]]
name = "gpservice" name = "gpservice"
version = "2.3.4" version = "2.3.5"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"axum", "axum",
@@ -2549,7 +2549,7 @@ dependencies = [
[[package]] [[package]]
name = "openconnect" name = "openconnect"
version = "2.3.4" version = "2.3.5"
dependencies = [ dependencies = [
"cc", "cc",
"common", "common",

View File

@@ -5,7 +5,7 @@ members = ["crates/*", "apps/gpclient", "apps/gpservice", "apps/gpauth", "apps/g
[workspace.package] [workspace.package]
rust-version = "1.70" rust-version = "1.70"
version = "2.3.4" version = "2.3.5"
authors = ["Kevin Yue <k3vinyue@gmail.com>"] authors = ["Kevin Yue <k3vinyue@gmail.com>"]
homepage = "https://github.com/yuezk/GlobalProtect-openconnect" homepage = "https://github.com/yuezk/GlobalProtect-openconnect"
edition = "2021" edition = "2021"

View File

@@ -41,7 +41,7 @@ struct Cli {
#[arg(long)] #[arg(long)]
default_browser: bool, default_browser: bool,
#[arg(long)] #[arg(long)]
external_browser: Option<String>, browser: Option<String>,
} }
impl Cli { impl Cli {
@@ -61,8 +61,8 @@ impl Cli {
None => portal_prelogin(&self.server, &gp_params).await?, None => portal_prelogin(&self.server, &gp_params).await?,
}; };
let browser_auth = if let Some(external_browser) = &self.external_browser { let browser_auth = if let Some(browser) = &self.browser {
Some(BrowserAuthenticator::new_with_browser(&saml_request, external_browser)) Some(BrowserAuthenticator::new_with_browser(&saml_request, browser))
} else if self.default_browser { } else if self.default_browser {
Some(BrowserAuthenticator::new(&saml_request)) Some(BrowserAuthenticator::new(&saml_request))
} else { } else {

View File

@@ -102,7 +102,7 @@ pub(crate) struct ConnectArgs {
long, long,
help = "Use the specified browser to authenticate, e.g., firefox, chromium, chrome, or the path to the browser" help = "Use the specified browser to authenticate, e.g., firefox, chromium, chrome, or the path to the browser"
)] )]
external_browser: Option<String>, browser: Option<String>,
} }
impl ConnectArgs { impl ConnectArgs {
@@ -332,8 +332,8 @@ impl<'a> ConnectHandler<'a> {
match prelogin { match prelogin {
Prelogin::Saml(prelogin) => { Prelogin::Saml(prelogin) => {
let use_default_browser = prelogin.support_default_browser() && self.args.default_browser; let use_default_browser = prelogin.support_default_browser() && self.args.default_browser;
let external_browser = if prelogin.support_default_browser() { let browser = if prelogin.support_default_browser() {
self.args.external_browser.as_deref() self.args.browser.as_deref()
} else { } else {
None None
}; };
@@ -349,7 +349,7 @@ impl<'a> ConnectHandler<'a> {
.ignore_tls_errors(self.shared_args.ignore_tls_errors) .ignore_tls_errors(self.shared_args.ignore_tls_errors)
.clean(self.args.clean) .clean(self.args.clean)
.default_browser(use_default_browser) .default_browser(use_default_browser)
.external_browser(external_browser) .browser(browser)
.launch() .launch()
.await?; .await?;

View File

@@ -1,5 +1,12 @@
# Changelog # Changelog
## 2.3.5 - 2024-08-14
- Support configure `no-dtls` option
- GUI: fix the tray icon disk usage issue (#398)
- CLI: support specify the browser with `--browser <browser>` option (#405, #407, #397)
- CLI: fix the `--os` option not working
## 2.3.4 - 2024-07-08 ## 2.3.4 - 2024-07-08
- Support the Internal Host Detection (fix [#377](https://github.com/yuezk/GlobalProtect-openconnect/issues/377)) - Support the Internal Host Detection (fix [#377](https://github.com/yuezk/GlobalProtect-openconnect/issues/377))

View File

@@ -19,7 +19,7 @@ pub struct SamlAuthLauncher<'a> {
ignore_tls_errors: bool, ignore_tls_errors: bool,
clean: bool, clean: bool,
default_browser: bool, default_browser: bool,
external_browser: Option<&'a str>, browser: Option<&'a str>,
} }
impl<'a> SamlAuthLauncher<'a> { impl<'a> SamlAuthLauncher<'a> {
@@ -36,7 +36,7 @@ impl<'a> SamlAuthLauncher<'a> {
ignore_tls_errors: false, ignore_tls_errors: false,
clean: false, clean: false,
default_browser: false, default_browser: false,
external_browser: None, browser: None,
} }
} }
@@ -90,8 +90,8 @@ impl<'a> SamlAuthLauncher<'a> {
self self
} }
pub fn external_browser(mut self, external_browser: Option<&'a str>) -> Self { pub fn browser(mut self, browser: Option<&'a str>) -> Self {
self.external_browser = external_browser; self.browser = browser;
self self
} }
@@ -140,8 +140,8 @@ impl<'a> SamlAuthLauncher<'a> {
auth_cmd.arg("--default-browser"); auth_cmd.arg("--default-browser");
} }
if let Some(external_browser) = self.external_browser { if let Some(browser) = self.browser {
auth_cmd.arg("--external-browser").arg(external_browser); auth_cmd.arg("--browser").arg(browser);
} }
let mut non_root_cmd = auth_cmd.into_non_root()?; let mut non_root_cmd = auth_cmd.into_non_root()?;