mirror of
				https://github.com/yuezk/GlobalProtect-openconnect.git
				synced 2025-05-20 07:26:58 -04:00 
			
		
		
		
	Ensure vpnc_script and csd_wrapper executable
This commit is contained in:
		| @@ -158,12 +158,12 @@ impl<'a> ConnectHandler<'a> { | ||||
|     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()) | ||||
|       .user_agent(self.args.user_agent.clone()) | ||||
|       .csd_uid(csd_uid) | ||||
|       .csd_wrapper(self.args.csd_wrapper.clone()) | ||||
|       .mtu(mtu) | ||||
|       .build(); | ||||
|       .build()?; | ||||
|  | ||||
|     let vpn = Arc::new(vpn); | ||||
|     let vpn_clone = vpn.clone(); | ||||
|   | ||||
| @@ -4,7 +4,7 @@ use gpapi::service::{ | ||||
|   request::{ConnectRequest, WsRequest}, | ||||
|   vpn_state::VpnState, | ||||
| }; | ||||
| use log::info; | ||||
| use log::{info, warn}; | ||||
| use openconnect::Vpn; | ||||
| use tokio::sync::{mpsc, oneshot, watch, RwLock}; | ||||
| use tokio_util::sync::CancellationToken; | ||||
| @@ -31,22 +31,29 @@ impl VpnTaskContext { | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     let vpn_state_tx = self.vpn_state_tx.clone(); | ||||
|     let info = req.info().clone(); | ||||
|     let vpn_handle = Arc::clone(&self.vpn_handle); | ||||
|     let args = req.args(); | ||||
|     let vpn = Vpn::builder(req.gateway().server(), args.cookie()) | ||||
|       .user_agent(args.user_agent()) | ||||
|     let vpn = match Vpn::builder(req.gateway().server(), args.cookie()) | ||||
|       .script(args.vpnc_script()) | ||||
|       .user_agent(args.user_agent()) | ||||
|       .csd_uid(args.csd_uid()) | ||||
|       .csd_wrapper(args.csd_wrapper()) | ||||
|       .mtu(args.mtu()) | ||||
|       .os(args.openconnect_os()) | ||||
|       .build(); | ||||
|       .build() | ||||
|     { | ||||
|       Ok(vpn) => vpn, | ||||
|       Err(err) => { | ||||
|         warn!("Failed to create VPN: {}", err); | ||||
|         vpn_state_tx.send(VpnState::Disconnected).ok(); | ||||
|         return; | ||||
|       } | ||||
|     }; | ||||
|  | ||||
|     // Save the VPN handle | ||||
|     vpn_handle.write().await.replace(vpn); | ||||
|  | ||||
|     let vpn_state_tx = self.vpn_state_tx.clone(); | ||||
|     let connect_info = Box::new(info.clone()); | ||||
|     vpn_state_tx.send(VpnState::Connecting(connect_info)).ok(); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user