Merge branch 'main' into gpgui-helper

This commit is contained in:
Kevin Yue
2024-02-19 21:07:04 -05:00
10 changed files with 100 additions and 3 deletions

View File

@@ -413,7 +413,19 @@ fn read_auth_data(main_resource: &WebResource, auth_result_tx: mpsc::UnboundedSe
}
Err(AuthDataError::NotFound) => {
info!("No auth data found in headers, trying to read from body...");
let url = main_resource.uri().unwrap_or("".into());
let is_acs_endpoint = url.contains("/SAML20/SP/ACS");
read_auth_data_from_body(main_resource, move |auth_result| {
// If the endpoint is `/SAML20/SP/ACS` and no auth data found in body, it should be considered as invalid
let auth_result = auth_result.map_err(|err| {
if matches!(err, AuthDataError::NotFound) && is_acs_endpoint {
AuthDataError::Invalid
} else {
err
}
});
send_auth_result(&auth_result_tx, auth_result)
});
}

View File

@@ -37,6 +37,9 @@ pub(crate) struct ConnectArgs {
#[arg(long, help = "Same as the '--csd-wrapper' option in the openconnect command")]
csd_wrapper: Option<String>,
#[arg(short, long, help = "Request MTU from server (legacy servers only)")]
mtu: Option<u32>,
#[arg(long, default_value = GP_USER_AGENT, help = "The user agent to use")]
user_agent: String,
#[arg(long, default_value = "Linux")]
@@ -152,12 +155,14 @@ impl<'a> ConnectHandler<'a> {
async fn connect_gateway(&self, gateway: &str, cookie: &str) -> anyhow::Result<()> {
let csd_uid = get_csd_uid(&self.args.csd_user)?;
let mtu = self.args.mtu.unwrap_or(0);
let vpn = Vpn::builder(gateway, cookie)
.user_agent(self.args.user_agent.clone())
.script(self.args.script.clone())
.csd_uid(csd_uid)
.csd_wrapper(self.args.csd_wrapper.clone())
.mtu(mtu)
.build();
let vpn = Arc::new(vpn);

View File

@@ -39,6 +39,7 @@ impl VpnTaskContext {
.script(args.vpnc_script())
.csd_uid(args.csd_uid())
.csd_wrapper(args.csd_wrapper())
.mtu(args.mtu())
.os(args.openconnect_os())
.build();