diff options
| author | Emīls <emils@mullvad.net> | 2023-08-28 16:11:13 +0200 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2023-08-30 15:46:16 +0200 |
| commit | abeccca73438f4fc5704b284d4ba3d5c9c44714f (patch) | |
| tree | 5bf4ca95e26d5fd5cdccda1356a31256e231cefe | |
| parent | 7fdf5e1140481c41a547351ba92b12603d45784c (diff) | |
| download | mullvadvpn-abeccca73438f4fc5704b284d4ba3d5c9c44714f.tar.xz mullvadvpn-abeccca73438f4fc5704b284d4ba3d5c9c44714f.zip | |
Fix clippy lints
27 files changed, 149 insertions, 155 deletions
diff --git a/mullvad-cli/src/cmds/relay.rs b/mullvad-cli/src/cmds/relay.rs index 1b14b31a45..78f7d1f3c4 100644 --- a/mullvad-cli/src/cmds/relay.rs +++ b/mullvad-cli/src/cmds/relay.rs @@ -554,8 +554,7 @@ impl Relay { let mut rpc = MullvadProxyClient::new().await?; Self::get_openvpn_constraints(&mut rpc).await? }; - openvpn_constraints.port = - parse_transport_port(port, protocol, &mut openvpn_constraints.port); + openvpn_constraints.port = parse_transport_port(port, protocol, &openvpn_constraints.port); Self::update_constraints(RelaySettingsUpdate::Normal(RelayConstraintsUpdate { openvpn_constraints: Some(openvpn_constraints), @@ -656,7 +655,7 @@ impl Relay { fn parse_transport_port( port: Option<Constraint<u16>>, protocol: Option<Constraint<TransportProtocol>>, - current_constraint: &mut Constraint<TransportPort>, + current_constraint: &Constraint<TransportPort>, ) -> Constraint<TransportPort> { let port = match port { Some(port) => port, diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index 9ab6967d88..f0516dd1fc 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -857,7 +857,7 @@ where self.handle_new_app_version_info(app_version_info); } DeviceEvent(event) => self.handle_device_event(event).await, - DeviceMigrationEvent(event) => self.handle_device_migration_event(event).await, + DeviceMigrationEvent(event) => self.handle_device_migration_event(event), #[cfg(windows)] ExcludedPathsEvent(update, tx) => self.handle_new_excluded_paths(update, tx).await, } @@ -988,19 +988,19 @@ where Reconnect(tx) => self.on_reconnect(tx), GetState(tx) => self.on_get_state(tx), GetCurrentLocation(tx) => self.on_get_current_location(tx).await, - CreateNewAccount(tx) => self.on_create_new_account(tx).await, - GetAccountData(tx, account_token) => self.on_get_account_data(tx, account_token).await, + CreateNewAccount(tx) => self.on_create_new_account(tx), + GetAccountData(tx, account_token) => self.on_get_account_data(tx, account_token), GetWwwAuthToken(tx) => self.on_get_www_auth_token(tx).await, - SubmitVoucher(tx, voucher) => self.on_submit_voucher(tx, voucher).await, + SubmitVoucher(tx, voucher) => self.on_submit_voucher(tx, voucher), GetRelayLocations(tx) => self.on_get_relay_locations(tx), UpdateRelayLocations => self.on_update_relay_locations().await, LoginAccount(tx, account_token) => self.on_login_account(tx, account_token), LogoutAccount(tx) => self.on_logout_account(tx), - GetDevice(tx) => self.on_get_device(tx).await, - UpdateDevice(tx) => self.on_update_device(tx).await, - ListDevices(tx, account_token) => self.on_list_devices(tx, account_token).await, + GetDevice(tx) => self.on_get_device(tx), + UpdateDevice(tx) => self.on_update_device(tx), + ListDevices(tx, account_token) => self.on_list_devices(tx, account_token), RemoveDevice(tx, account_token, device_id) => { - self.on_remove_device(tx, account_token, device_id).await + self.on_remove_device(tx, account_token, device_id) } GetAccountHistory(tx) => self.on_get_account_history(tx), ClearAccountHistory(tx) => self.on_clear_account_history(tx).await, @@ -1028,7 +1028,7 @@ where self.on_set_wireguard_rotation_interval(tx, interval).await } GetSettings(tx) => self.on_get_settings(tx), - RotateWireguardKey(tx) => self.on_rotate_wireguard_key(tx).await, + RotateWireguardKey(tx) => self.on_rotate_wireguard_key(tx), GetWireguardKey(tx) => self.on_get_wireguard_key(tx).await, ListCustomLists(tx) => self.on_list_custom_lists(tx), GetCustomList(tx, name) => self.on_get_custom_list(tx, name), @@ -1040,7 +1040,7 @@ where RenameCustomList(tx, name, new_name) => { self.on_rename_custom_list(tx, name, new_name).await } - GetVersionInfo(tx) => self.on_get_version_info(tx).await, + GetVersionInfo(tx) => self.on_get_version_info(tx), IsPerformingPostUpgrade(tx) => self.on_is_performing_post_upgrade(tx), GetCurrentVersion(tx) => self.on_get_current_version(tx), #[cfg(not(target_os = "android"))] @@ -1054,13 +1054,13 @@ where #[cfg(target_os = "linux")] ClearSplitTunnelProcesses(tx) => self.on_clear_split_tunnel_processes(tx), #[cfg(windows)] - AddSplitTunnelApp(tx, path) => self.on_add_split_tunnel_app(tx, path).await, + AddSplitTunnelApp(tx, path) => self.on_add_split_tunnel_app(tx, path), #[cfg(windows)] - RemoveSplitTunnelApp(tx, path) => self.on_remove_split_tunnel_app(tx, path).await, + RemoveSplitTunnelApp(tx, path) => self.on_remove_split_tunnel_app(tx, path), #[cfg(windows)] - ClearSplitTunnelApps(tx) => self.on_clear_split_tunnel_apps(tx).await, + ClearSplitTunnelApps(tx) => self.on_clear_split_tunnel_apps(tx), #[cfg(windows)] - SetSplitTunnelState(tx, enabled) => self.on_set_split_tunnel_state(tx, enabled).await, + SetSplitTunnelState(tx, enabled) => self.on_set_split_tunnel_state(tx, enabled), #[cfg(windows)] GetSplitTunnelProcesses(tx) => self.on_get_split_tunnel_processes(tx), #[cfg(target_os = "windows")] @@ -1136,7 +1136,7 @@ where } } - async fn handle_device_migration_event( + fn handle_device_migration_event( &mut self, result: Result<PrivateAccountAndDevice, device::Error>, ) { @@ -1286,7 +1286,7 @@ where } } - async fn on_create_new_account(&mut self, tx: ResponseTx<String, Error>) { + fn on_create_new_account(&mut self, tx: ResponseTx<String, Error>) { let account_manager = self.account_manager.clone(); tokio::spawn(async move { let result = async { @@ -1316,7 +1316,7 @@ where }); } - async fn on_get_account_data( + fn on_get_account_data( &mut self, tx: ResponseTx<AccountData, mullvad_api::rest::Error>, account_token: AccountToken, @@ -1354,11 +1354,7 @@ where } } - async fn on_submit_voucher( - &mut self, - tx: ResponseTx<VoucherSubmission, Error>, - voucher: String, - ) { + fn on_submit_voucher(&mut self, tx: ResponseTx<VoucherSubmission, Error>, voucher: String) { let manager = self.account_manager.clone(); tokio::spawn(async move { Self::oneshot_send( @@ -1414,7 +1410,7 @@ where }); } - async fn on_get_device(&mut self, tx: ResponseTx<DeviceState, Error>) { + fn on_get_device(&mut self, tx: ResponseTx<DeviceState, Error>) { let account_manager = self.account_manager.clone(); tokio::spawn(async move { Self::oneshot_send( @@ -1429,7 +1425,7 @@ where }); } - async fn on_update_device(&mut self, tx: ResponseTx<(), Error>) { + fn on_update_device(&mut self, tx: ResponseTx<(), Error>) { let account_manager = self.account_manager.clone(); tokio::spawn(async move { let result = match account_manager.validate_device().await { @@ -1444,7 +1440,7 @@ where }); } - async fn on_list_devices(&self, tx: ResponseTx<Vec<Device>, Error>, token: AccountToken) { + fn on_list_devices(&self, tx: ResponseTx<Vec<Device>, Error>, token: AccountToken) { let service = self.account_manager.device_service.clone(); tokio::spawn(async move { Self::oneshot_send( @@ -1458,7 +1454,7 @@ where }); } - async fn on_remove_device( + fn on_remove_device( &mut self, tx: ResponseTx<(), Error>, account_token: AccountToken, @@ -1504,7 +1500,7 @@ where Self::oneshot_send(tx, result, "clear_account_history response"); } - async fn on_get_version_info(&mut self, tx: oneshot::Sender<Option<AppVersionInfo>>) { + fn on_get_version_info(&mut self, tx: oneshot::Sender<Option<AppVersionInfo>>) { if self.app_version_info.is_none() { log::debug!("No version cache found. Fetching new info"); let mut handle = self.version_updater_handle.clone(); @@ -1624,7 +1620,7 @@ where /// Update the split app paths in both the settings and tunnel #[cfg(windows)] - async fn set_split_tunnel_paths( + fn set_split_tunnel_paths( &mut self, tx: ResponseTx<(), Error>, response_msg: &'static str, @@ -1690,7 +1686,7 @@ where } #[cfg(windows)] - async fn on_add_split_tunnel_app(&mut self, tx: ResponseTx<(), Error>, path: PathBuf) { + fn on_add_split_tunnel_app(&mut self, tx: ResponseTx<(), Error>, path: PathBuf) { let settings = self.settings.to_settings(); let mut new_list = settings.split_tunnel.apps.clone(); @@ -1701,12 +1697,11 @@ where "add_split_tunnel_app response", settings, ExcludedPathsUpdate::SetPaths(new_list), - ) - .await; + ); } #[cfg(windows)] - async fn on_remove_split_tunnel_app(&mut self, tx: ResponseTx<(), Error>, path: PathBuf) { + fn on_remove_split_tunnel_app(&mut self, tx: ResponseTx<(), Error>, path: PathBuf) { let settings = self.settings.to_settings(); let mut new_list = settings.split_tunnel.apps.clone(); @@ -1717,12 +1712,11 @@ where "remove_split_tunnel_app response", settings, ExcludedPathsUpdate::SetPaths(new_list), - ) - .await; + ); } #[cfg(windows)] - async fn on_clear_split_tunnel_apps(&mut self, tx: ResponseTx<(), Error>) { + fn on_clear_split_tunnel_apps(&mut self, tx: ResponseTx<(), Error>) { let settings = self.settings.to_settings(); let new_list = HashSet::new(); self.set_split_tunnel_paths( @@ -1730,20 +1724,18 @@ where "clear_split_tunnel_apps response", settings, ExcludedPathsUpdate::SetPaths(new_list), - ) - .await; + ); } #[cfg(windows)] - async fn on_set_split_tunnel_state(&mut self, tx: ResponseTx<(), Error>, state: bool) { + fn on_set_split_tunnel_state(&mut self, tx: ResponseTx<(), Error>, state: bool) { let settings = self.settings.to_settings(); self.set_split_tunnel_paths( tx, "set_split_tunnel_state response", settings, ExcludedPathsUpdate::SetState(state), - ) - .await; + ); } #[cfg(windows)] @@ -2215,7 +2207,7 @@ where } } - async fn on_rotate_wireguard_key(&self, tx: ResponseTx<(), Error>) { + fn on_rotate_wireguard_key(&self, tx: ResponseTx<(), Error>) { let manager = self.account_manager.clone(); tokio::spawn(async move { let result = manager diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index a36ed28576..12dacfad4b 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -191,7 +191,7 @@ async fn create_daemon( .map_err(|e| e.display_chain_with_msg("Unable to get cache dir"))?; let command_channel = DaemonCommandChannel::new(); - let event_listener = spawn_management_interface(command_channel.sender()).await?; + let event_listener = spawn_management_interface(command_channel.sender())?; Daemon::start( log_dir, @@ -205,14 +205,13 @@ async fn create_daemon( .map_err(|e| e.display_chain_with_msg("Unable to initialize daemon")) } -async fn spawn_management_interface( +fn spawn_management_interface( command_sender: DaemonCommandSender, ) -> Result<ManagementInterfaceEventBroadcaster, String> { let (socket_path, event_broadcaster) = ManagementInterfaceServer::start(command_sender) - .await .map_err(|error| { - error.display_chain_with_msg("Unable to start management interface server") - })?; + error.display_chain_with_msg("Unable to start management interface server") + })?; log::info!("Management interface listening on {}", socket_path); diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index aa46c91584..1e21cc881d 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -894,7 +894,7 @@ impl ManagementServiceImpl { pub struct ManagementInterfaceServer(()); impl ManagementInterfaceServer { - pub async fn start( + pub fn start( tunnel_tx: DaemonCommandSender, ) -> Result<(String, ManagementInterfaceEventBroadcaster), Error> { let subscriptions = Arc::<RwLock<Vec<EventsListenerSender>>>::default(); @@ -911,7 +911,6 @@ impl ManagementInterfaceServer { let join_handle = mullvad_management_interface::spawn_rpc_server(server, async move { server_abort_rx.into_future().await; }) - .await .map_err(Error::SetupError)?; tokio::spawn(async move { diff --git a/mullvad-daemon/src/migrations/v1.rs b/mullvad-daemon/src/migrations/v1.rs index 243f9ec735..9c18e390b4 100644 --- a/mullvad-daemon/src/migrations/v1.rs +++ b/mullvad-daemon/src/migrations/v1.rs @@ -70,7 +70,7 @@ pub fn migrate(settings: &mut serde_json::Value) -> Result<()> { Ok(()) } -fn version_matches(settings: &mut serde_json::Value) -> bool { +fn version_matches(settings: &serde_json::Value) -> bool { settings.get("settings_version").is_none() } diff --git a/mullvad-daemon/src/migrations/v2.rs b/mullvad-daemon/src/migrations/v2.rs index 6676250065..2917abb6dc 100644 --- a/mullvad-daemon/src/migrations/v2.rs +++ b/mullvad-daemon/src/migrations/v2.rs @@ -64,7 +64,7 @@ pub fn migrate(settings: &mut serde_json::Value) -> Result<()> { Ok(()) } -fn version_matches(settings: &mut serde_json::Value) -> bool { +fn version_matches(settings: &serde_json::Value) -> bool { settings .get("settings_version") .map(|version| version == SettingsVersion::V2 as u64) diff --git a/mullvad-daemon/src/migrations/v3.rs b/mullvad-daemon/src/migrations/v3.rs index fae951c5de..78ee01dab6 100644 --- a/mullvad-daemon/src/migrations/v3.rs +++ b/mullvad-daemon/src/migrations/v3.rs @@ -80,7 +80,7 @@ pub fn migrate(settings: &mut serde_json::Value) -> Result<()> { Ok(()) } -fn version_matches(settings: &mut serde_json::Value) -> bool { +fn version_matches(settings: &serde_json::Value) -> bool { settings .get("settings_version") .map(|version| version == SettingsVersion::V3 as u64) diff --git a/mullvad-daemon/src/migrations/v4.rs b/mullvad-daemon/src/migrations/v4.rs index fcabfbcacb..82d238ae19 100644 --- a/mullvad-daemon/src/migrations/v4.rs +++ b/mullvad-daemon/src/migrations/v4.rs @@ -114,7 +114,7 @@ pub fn migrate(settings: &mut serde_json::Value) -> Result<()> { Ok(()) } -fn version_matches(settings: &mut serde_json::Value) -> bool { +fn version_matches(settings: &serde_json::Value) -> bool { settings .get("settings_version") .map(|version| version == SettingsVersion::V4 as u64) diff --git a/mullvad-daemon/src/migrations/v5.rs b/mullvad-daemon/src/migrations/v5.rs index 4c454bc453..c615927422 100644 --- a/mullvad-daemon/src/migrations/v5.rs +++ b/mullvad-daemon/src/migrations/v5.rs @@ -171,7 +171,7 @@ fn create_migrated_obfuscation_settings(port: Constraint<u16>) -> ObfuscationSet } } -fn version_matches(settings: &mut serde_json::Value) -> bool { +fn version_matches(settings: &serde_json::Value) -> bool { settings .get("settings_version") .map(|version| version == SettingsVersion::V5 as u64) diff --git a/mullvad-daemon/src/migrations/v6.rs b/mullvad-daemon/src/migrations/v6.rs index 70b92d372c..3bceac9252 100644 --- a/mullvad-daemon/src/migrations/v6.rs +++ b/mullvad-daemon/src/migrations/v6.rs @@ -120,7 +120,7 @@ fn migrate_udp2tcp_port_443(settings: &mut serde_json::Value) -> Option<()> { None } -fn version_matches(settings: &mut serde_json::Value) -> bool { +fn version_matches(settings: &serde_json::Value) -> bool { settings .get("settings_version") .map(|version| version == SettingsVersion::V6 as u64) diff --git a/mullvad-management-interface/src/lib.rs b/mullvad-management-interface/src/lib.rs index 888cf7a318..b2ca7a4079 100644 --- a/mullvad-management-interface/src/lib.rs +++ b/mullvad-management-interface/src/lib.rs @@ -129,7 +129,7 @@ pub use client::MullvadProxyClient; pub type ServerJoinHandle = tokio::task::JoinHandle<Result<(), Error>>; -pub async fn spawn_rpc_server<T: ManagementService, F: Future<Output = ()> + Send + 'static>( +pub fn spawn_rpc_server<T: ManagementService, F: Future<Output = ()> + Send + 'static>( service: T, abort_rx: F, ) -> std::result::Result<ServerJoinHandle, Error> { diff --git a/mullvad-problem-report/src/lib.rs b/mullvad-problem-report/src/lib.rs index dcc446800f..10c2ec1b96 100644 --- a/mullvad-problem-report/src/lib.rs +++ b/mullvad-problem-report/src/lib.rs @@ -438,7 +438,7 @@ impl ProblemReport { fn redact_guids(input: &str) -> Cow<'_, str> { static RE: Lazy<Regex> = Lazy::new(|| { - Regex::new(r#"(?i)\{?[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}\}?"#) + Regex::new(r"(?i)\{?[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}\}?") .unwrap() }); RE.replace_all(input, "[REDACTED]") diff --git a/mullvad-relay-selector/src/lib.rs b/mullvad-relay-selector/src/lib.rs index 4baee72d04..0ce93f7fcd 100644 --- a/mullvad-relay-selector/src/lib.rs +++ b/mullvad-relay-selector/src/lib.rs @@ -95,10 +95,7 @@ impl ParsedRelays { pub fn from_relay_list(mut relay_list: RelayList, last_updated: SystemTime) -> Self { // Append data for obfuscation protocols ourselves, since the API does not provide it. if relay_list.wireguard.udp2tcp_ports.is_empty() { - relay_list - .wireguard - .udp2tcp_ports - .extend(UDP2TCP_PORTS.into_iter()); + relay_list.wireguard.udp2tcp_ports.extend(UDP2TCP_PORTS); } let mut relays = Vec::new(); diff --git a/talpid-core/src/dns/linux/mod.rs b/talpid-core/src/dns/linux/mod.rs index b7e2ad3f69..38d15b4f5d 100644 --- a/talpid-core/src/dns/linux/mod.rs +++ b/talpid-core/src/dns/linux/mod.rs @@ -1,7 +1,7 @@ mod network_manager; mod resolvconf; mod static_resolv_conf; -pub(self) mod systemd_resolved; +mod systemd_resolved; use self::{ network_manager::NetworkManager, resolvconf::Resolvconf, static_resolv_conf::StaticResolvConf, @@ -56,7 +56,7 @@ impl super::DnsMonitorT for DnsMonitor { fn set(&mut self, interface: &str, servers: &[IpAddr]) -> Result<()> { self.reset()?; // Creating a new DNS monitor for each set, in case the system changed how it manages DNS. - let mut inner = DnsMonitorHolder::new(&self.handle)?; + let mut inner = DnsMonitorHolder::new()?; if !servers.is_empty() { inner.set(&self.handle, &self.route_manager, interface, servers)?; self.inner = Some(inner); @@ -93,23 +93,21 @@ impl fmt::Display for DnsMonitorHolder { } impl DnsMonitorHolder { - fn new(handle: &tokio::runtime::Handle) -> Result<Self> { + fn new() -> Result<Self> { let dns_module = env::var_os("TALPID_DNS_MODULE"); let manager = match dns_module.as_ref().and_then(|value| value.to_str()) { - Some("static-file") => { - DnsMonitorHolder::StaticResolvConf(handle.block_on(StaticResolvConf::new())?) - } + Some("static-file") => DnsMonitorHolder::StaticResolvConf(StaticResolvConf::new()?), Some("resolvconf") => DnsMonitorHolder::Resolvconf(Resolvconf::new()?), Some("systemd") => DnsMonitorHolder::SystemdResolved(SystemdResolved::new()?), Some("network-manager") => DnsMonitorHolder::NetworkManager(NetworkManager::new()?), - Some(_) | None => Self::with_detected_dns_manager(handle)?, + Some(_) | None => Self::with_detected_dns_manager()?, }; log::debug!("Managing DNS via {}", manager); Ok(manager) } - fn with_detected_dns_manager(handle: &tokio::runtime::Handle) -> Result<Self> { + fn with_detected_dns_manager() -> Result<Self> { SystemdResolved::new() .map(DnsMonitorHolder::SystemdResolved) .or_else(|err| { @@ -124,11 +122,7 @@ impl DnsMonitorHolder { NetworkManager::new().map(DnsMonitorHolder::NetworkManager) }) .or_else(|_| Resolvconf::new().map(DnsMonitorHolder::Resolvconf)) - .or_else(|_| { - handle - .block_on(StaticResolvConf::new()) - .map(DnsMonitorHolder::StaticResolvConf) - }) + .or_else(|_| StaticResolvConf::new().map(DnsMonitorHolder::StaticResolvConf)) .map_err(|_| Error::NoDnsMonitor) } diff --git a/talpid-core/src/dns/linux/static_resolv_conf.rs b/talpid-core/src/dns/linux/static_resolv_conf.rs index b00886b193..674fc077c5 100644 --- a/talpid-core/src/dns/linux/static_resolv_conf.rs +++ b/talpid-core/src/dns/linux/static_resolv_conf.rs @@ -35,11 +35,11 @@ pub struct StaticResolvConf { } impl StaticResolvConf { - pub async fn new() -> Result<Self> { + pub fn new() -> Result<Self> { restore_from_backup()?; let state = Arc::new(Mutex::new(None)); - let watcher = DnsWatcher::start(state.clone()).await?; + let watcher = DnsWatcher::start(state.clone())?; Ok(StaticResolvConf { state, @@ -112,7 +112,7 @@ impl Drop for DnsWatcher { } impl DnsWatcher { - async fn start(state: Arc<Mutex<Option<State>>>) -> Result<Self> { + fn start(state: Arc<Mutex<Option<State>>>) -> Result<Self> { let mut watcher = Inotify::init().map_err(Error::WatchResolvConf)?; let mut mask = WatchMask::empty(); // Documentation for the meaning of these masks can be found in `man inotify` diff --git a/talpid-core/src/dns/macos.rs b/talpid-core/src/dns/macos.rs index e864d51591..39bce1c094 100644 --- a/talpid-core/src/dns/macos.rs +++ b/talpid-core/src/dns/macos.rs @@ -250,11 +250,11 @@ impl DnsSettings { .map(|array_ptr| unsafe { CFType::wrap_under_get_rule(*array_ptr) }) .and_then(|array| array.downcast::<CFArray>()) .and_then(Self::parse_cf_array_to_strings) - .unwrap_or(Vec::new()) + .unwrap_or_default() } pub fn address_set(&self) -> BTreeSet<String> { - BTreeSet::from_iter(self.server_addresses().into_iter()) + BTreeSet::from_iter(self.server_addresses()) } pub fn interface_config(&self, interface_path: &str) -> Result<Vec<IpAddr>> { diff --git a/talpid-core/src/firewall/macos.rs b/talpid-core/src/firewall/macos.rs index 9146a27bfe..4f95309890 100644 --- a/talpid-core/src/firewall/macos.rs +++ b/talpid-core/src/firewall/macos.rs @@ -130,8 +130,7 @@ impl Firewall { if let Some(tunnel) = tunnel { rules.extend( - self.get_allow_tunnel_rules(&tunnel.interface, allowed_tunnel_traffic)? - .into_iter(), + self.get_allow_tunnel_rules(&tunnel.interface, allowed_tunnel_traffic)?, ); } @@ -158,13 +157,10 @@ impl Firewall { // can't leak to the wrong IPs in the tunnel or on the LAN. rules.append(&mut self.get_block_dns_rules()?); - rules.extend( - self.get_allow_tunnel_rules( - tunnel.interface.as_str(), - &AllowedTunnelTraffic::All, - )? - .into_iter(), - ); + rules.extend(self.get_allow_tunnel_rules( + tunnel.interface.as_str(), + &AllowedTunnelTraffic::All, + )?); if *allow_lan { rules.append(&mut self.get_allow_lan_rules()?); diff --git a/talpid-core/src/resolver.rs b/talpid-core/src/resolver.rs index 06b58efbc3..19311a38cc 100644 --- a/talpid-core/src/resolver.rs +++ b/talpid-core/src/resolver.rs @@ -197,7 +197,7 @@ struct ResolverImpl { impl ResolverImpl { fn build_response<'a>( message: &'a MessageRequest, - lookup: &'a mut Box<dyn LookupObject>, + lookup: &'a dyn LookupObject, ) -> LookupResponse<'a> { let mut response_header = Header::new(); response_header.set_id(message.id()); @@ -221,10 +221,10 @@ impl ResolverImpl { let query = message.query(); let (lookup_tx, lookup_rx) = oneshot::channel(); let _ = tx.send((query.clone(), lookup_tx)).await; - let mut lookup_result: Box<dyn LookupObject> = lookup_rx + let lookup_result: Box<dyn LookupObject> = lookup_rx .await .unwrap_or_else(|_| Box::new(EmptyLookup) as Box<dyn LookupObject>); - let response = Self::build_response(message, &mut lookup_result); + let response = Self::build_response(message, lookup_result.as_ref()); if let Err(err) = response_handler.send_response(response).await { log::error!("Failed to send response: {}", err); diff --git a/talpid-core/src/split_tunnel/windows/driver.rs b/talpid-core/src/split_tunnel/windows/driver.rs index 6200329696..c868834518 100644 --- a/talpid-core/src/split_tunnel/windows/driver.rs +++ b/talpid-core/src/split_tunnel/windows/driver.rs @@ -963,8 +963,7 @@ unsafe fn deserialize_buffer<T>(buffer: &[u8]) -> T { } fn buffer_to_osstring(buffer: &[u8]) -> OsString { - let mut out_buf = Vec::new(); - out_buf.resize((buffer.len() + 1) / mem::size_of::<u16>(), 0u16); + let mut out_buf = vec![0u16; (buffer.len() + 1) / mem::size_of::<u16>()]; // SAFETY: `out_buf` contains enough bytes to store all of `buffer`. unsafe { diff --git a/talpid-core/src/split_tunnel/windows/windows.rs b/talpid-core/src/split_tunnel/windows/windows.rs index f526ddf933..77fafdc199 100644 --- a/talpid-core/src/split_tunnel/windows/windows.rs +++ b/talpid-core/src/split_tunnel/windows/windows.rs @@ -143,8 +143,7 @@ pub fn get_device_path<T: AsRef<Path>>(path: T) -> Result<OsString, io::Error> { pub unsafe fn get_final_path_name_by_handle(raw_handle: HANDLE) -> Result<OsString, io::Error> { let buffer_size = GetFinalPathNameByHandleW(raw_handle, ptr::null_mut(), 0u32, VOLUME_NAME_NT) as usize; - let mut buffer = Vec::new(); - buffer.resize(buffer_size, 0); + let mut buffer = vec![0; buffer_size]; let status = GetFinalPathNameByHandleW( raw_handle, diff --git a/talpid-core/src/tunnel/mod.rs b/talpid-core/src/tunnel/mod.rs index aa875ac83c..d254ec93d5 100644 --- a/talpid-core/src/tunnel/mod.rs +++ b/talpid-core/src/tunnel/mod.rs @@ -121,6 +121,9 @@ impl TunnelMonitor { } fn start_wireguard_tunnel<L>( + #[cfg(not(any(target_os = "linux", target_os = "windows")))] + params: &wireguard_types::TunnelParameters, + #[cfg(any(target_os = "linux", target_os = "windows"))] params: &mut wireguard_types::TunnelParameters, log: Option<path::PathBuf>, args: TunnelArgs<'_, L>, @@ -314,7 +317,7 @@ fn is_ipv6_enabled_in_os() -> bool { // Check registry if IPv6 is disabled on tunnel interfaces, as documented in // https://support.microsoft.com/en-us/help/929852/guidance-for-configuring-ipv6-in-windows-for-advanced-users let globally_enabled = RegKey::predef(HKEY_LOCAL_MACHINE) - .open_subkey(r#"SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters"#) + .open_subkey(r"SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters") .and_then(|ipv6_config| ipv6_config.get_value("DisabledComponents")) .map(|ipv6_disabled_bits: u32| (ipv6_disabled_bits & IPV6_DISABLED_ON_TUNNELS_MASK) == 0) .unwrap_or(true); diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs index fadbbe9e67..b231518838 100644 --- a/talpid-core/src/tunnel_state_machine/connected_state.rs +++ b/talpid-core/src/tunnel_state_machine/connected_state.rs @@ -145,7 +145,10 @@ impl ConnectedState { } } - fn reset_routes(shared_values: &mut SharedTunnelStateValues) { + fn reset_routes( + #[cfg(target_os = "windows")] shared_values: &SharedTunnelStateValues, + #[cfg(not(target_os = "windows"))] shared_values: &mut SharedTunnelStateValues, + ) { if let Err(error) = shared_values.route_manager.clear_routes() { log::error!("{}", error.display_chain_with_msg("Failed to clear routes")); } diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs index 44b61772d6..2bfc83e558 100644 --- a/talpid-core/src/tunnel_state_machine/connecting_state.rs +++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs @@ -97,7 +97,7 @@ impl ConnectingState { log_dir: &Option<PathBuf>, resource_dir: &Path, tun_provider: Arc<Mutex<TunProvider>>, - route_manager: &mut RouteManager, + route_manager: &RouteManager, retry_attempt: u32, ) -> Self { let (event_tx, event_rx) = mpsc::unbounded(); @@ -259,7 +259,10 @@ impl ConnectingState { } } - fn reset_routes(shared_values: &mut SharedTunnelStateValues) { + fn reset_routes( + #[cfg(target_os = "windows")] shared_values: &SharedTunnelStateValues, + #[cfg(not(target_os = "windows"))] shared_values: &mut SharedTunnelStateValues, + ) { if let Err(error) = shared_values.route_manager.clear_routes() { log::error!("{}", error.display_chain_with_msg("Failed to clear routes")); } @@ -590,7 +593,7 @@ impl TunnelState for ConnectingState { &shared_values.log_dir, &shared_values.resource_dir, shared_values.tun_provider.clone(), - &mut shared_values.route_manager, + &shared_values.route_manager, retry_attempt, ); let params = connecting_state.tunnel_parameters.clone(); diff --git a/talpid-openvpn/src/lib.rs b/talpid-openvpn/src/lib.rs index 56224ab764..6d2989160e 100644 --- a/talpid-openvpn/src/lib.rs +++ b/talpid-openvpn/src/lib.rs @@ -330,7 +330,6 @@ impl OpenVpnMonitor<OpenVpnCommand> { #[cfg(windows)] Box::new(wintun), ) - .await } #[cfg(windows)] @@ -382,7 +381,7 @@ struct OpenVpnTunnelInitArgs { } impl<C: OpenVpnBuilder + Send + 'static> OpenVpnMonitor<C> { - async fn new_internal<L>( + fn new_internal<L>( mut cmd: C, init_args: OpenVpnTunnelInitArgs, on_event: L, @@ -401,7 +400,6 @@ impl<C: OpenVpnBuilder + Send + 'static> OpenVpnMonitor<C> { let tunnel_close_rx = init_args.tunnel_close_rx; let (server_join_handle, ipc_path) = event_server::start(on_event, event_server_abort_rx) - .await .map_err(Error::EventDispatcherError)?; #[cfg(windows)] @@ -1061,7 +1059,7 @@ mod event_server { } } - pub async fn start<L>( + pub fn start<L>( event_proxy: L, abort_rx: triggered::Listener, ) -> std::result::Result<(tokio::task::JoinHandle<Result<(), Error>>, String), Error> @@ -1276,13 +1274,15 @@ mod tests { let builder = TestOpenVpnBuilder::default(); let runtime = new_runtime().unwrap(); let openvpn_init_args = create_init_args_plugin_log("./my_test_plugin".into(), None); - let _ = runtime.block_on(OpenVpnMonitor::new_internal( - builder.clone(), - openvpn_init_args, - TestOpenvpnEventProxy {}, - #[cfg(windows)] - Box::new(TestWintunContext {}), - )); + let _ = runtime.block_on(async { + OpenVpnMonitor::new_internal( + builder.clone(), + openvpn_init_args, + TestOpenvpnEventProxy {}, + #[cfg(windows)] + Box::new(TestWintunContext {}), + ) + }); assert_eq!( Some(PathBuf::from("./my_test_plugin")), *builder.plugin.lock() @@ -1295,13 +1295,15 @@ mod tests { let runtime = new_runtime().unwrap(); let openvpn_init_args = create_init_args_plugin_log("".into(), Some(PathBuf::from("./my_test_log_file"))); - let _ = runtime.block_on(OpenVpnMonitor::new_internal( - builder.clone(), - openvpn_init_args, - TestOpenvpnEventProxy {}, - #[cfg(windows)] - Box::new(TestWintunContext {}), - )); + let _ = runtime.block_on(async { + OpenVpnMonitor::new_internal( + builder.clone(), + openvpn_init_args, + TestOpenvpnEventProxy {}, + #[cfg(windows)] + Box::new(TestWintunContext {}), + ) + }); assert_eq!( Some(PathBuf::from("./my_test_log_file")), *builder.log.lock() @@ -1317,13 +1319,15 @@ mod tests { let runtime = new_runtime().unwrap(); let openvpn_init_args = create_init_args(); let testee = runtime - .block_on(OpenVpnMonitor::new_internal( - builder, - openvpn_init_args, - TestOpenvpnEventProxy {}, - #[cfg(windows)] - Box::new(TestWintunContext {}), - )) + .block_on(async { + OpenVpnMonitor::new_internal( + builder, + openvpn_init_args, + TestOpenvpnEventProxy {}, + #[cfg(windows)] + Box::new(TestWintunContext {}), + ) + }) .unwrap(); assert!(testee.wait().is_ok()); } @@ -1337,13 +1341,15 @@ mod tests { let runtime = new_runtime().unwrap(); let openvpn_init_args = create_init_args(); let testee = runtime - .block_on(OpenVpnMonitor::new_internal( - builder, - openvpn_init_args, - TestOpenvpnEventProxy {}, - #[cfg(windows)] - Box::new(TestWintunContext {}), - )) + .block_on(async move { + OpenVpnMonitor::new_internal( + builder, + openvpn_init_args, + TestOpenvpnEventProxy {}, + #[cfg(windows)] + Box::new(TestWintunContext {}), + ) + }) .unwrap(); assert!(testee.wait().is_err()); } @@ -1357,14 +1363,17 @@ mod tests { let runtime = new_runtime().unwrap(); let openvpn_init_args = create_init_args(); let testee = runtime - .block_on(OpenVpnMonitor::new_internal( - builder, - openvpn_init_args, - TestOpenvpnEventProxy {}, - #[cfg(windows)] - Box::new(TestWintunContext {}), - )) + .block_on(async { + OpenVpnMonitor::new_internal( + builder, + openvpn_init_args, + TestOpenvpnEventProxy {}, + #[cfg(windows)] + Box::new(TestWintunContext {}), + ) + }) .unwrap(); + testee.close_handle().close().unwrap(); assert!(testee.wait().is_ok()); } @@ -1375,13 +1384,15 @@ mod tests { let runtime = new_runtime().unwrap(); let openvpn_init_args = create_init_args(); let result = runtime - .block_on(OpenVpnMonitor::new_internal( - builder, - openvpn_init_args, - TestOpenvpnEventProxy {}, - #[cfg(windows)] - Box::new(TestWintunContext {}), - )) + .block_on(async { + OpenVpnMonitor::new_internal( + builder, + openvpn_init_args, + TestOpenvpnEventProxy {}, + #[cfg(windows)] + Box::new(TestWintunContext {}), + ) + }) .unwrap(); match result.wait() { Err(Error::StartProcessError) => (), diff --git a/talpid-wireguard/src/lib.rs b/talpid-wireguard/src/lib.rs index 4897145f5d..784cafa75b 100644 --- a/talpid-wireguard/src/lib.rs +++ b/talpid-wireguard/src/lib.rs @@ -318,7 +318,7 @@ impl WireguardMonitor { let moved_close_obfs_sender = close_obfs_sender.clone(); let moved_obfuscator = monitor.obfuscator.clone(); let tunnel_fut = async move { - let mut tunnel = moved_tunnel; + let tunnel = moved_tunnel; let close_obfs_sender: sync_mpsc::Sender<CloseMsg> = moved_close_obfs_sender; let obfuscator = moved_obfuscator; #[cfg(windows)] @@ -358,7 +358,7 @@ impl WireguardMonitor { let psk_obfs_sender = close_obfs_sender.clone(); if psk_negotiation { Self::psk_negotiation( - &mut tunnel, + &tunnel, &mut config, args.retry_attempt, args.on_event.clone(), @@ -433,7 +433,7 @@ impl WireguardMonitor { #[allow(clippy::too_many_arguments)] async fn psk_negotiation<F>( - tunnel: &mut Arc<Mutex<Option<Box<dyn Tunnel>>>>, + tunnel: &Arc<Mutex<Option<Box<dyn Tunnel>>>>, config: &mut Config, retry_attempt: u32, on_event: F, diff --git a/talpid-wireguard/src/wireguard_go.rs b/talpid-wireguard/src/wireguard_go.rs index fff8416064..e848e32679 100644 --- a/talpid-wireguard/src/wireguard_go.rs +++ b/talpid-wireguard/src/wireguard_go.rs @@ -91,7 +91,7 @@ impl WgGoTunnel { wgTurnOn( #[cfg(not(target_os = "android"))] mtu, - wg_config_str.as_ptr() as *const i8, + wg_config_str.as_ptr() as _, tunnel_fd, Some(wg_go_logging_callback), logging_context.0 as *mut c_void, @@ -383,7 +383,7 @@ impl Tunnel for WgGoTunnel { #[cfg(target_os = "android")] let tun_provider = self.tun_provider.clone(); Box::pin(async move { - let status = unsafe { wgSetConfig(handle, wg_config_str.as_ptr() as *const i8) }; + let status = unsafe { wgSetConfig(handle, wg_config_str.as_ptr() as _) }; if status != 0 { return Err(TunnelError::SetConfigError); } diff --git a/talpid-wireguard/src/wireguard_kernel/wg_message.rs b/talpid-wireguard/src/wireguard_kernel/wg_message.rs index 0c36d45635..7ed972c3ea 100644 --- a/talpid-wireguard/src/wireguard_kernel/wg_message.rs +++ b/talpid-wireguard/src/wireguard_kernel/wg_message.rs @@ -758,7 +758,7 @@ mod test { Endpoint(InetAddr::from_std(&"192.168.40.2:9797".parse().unwrap())), AllowedIps( [AllowedIpMessage( - vec