summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorEmīls <emils@mullvad.net>2023-08-28 16:11:13 +0200
committerEmīls <emils@mullvad.net>2023-08-30 15:46:16 +0200
commitabeccca73438f4fc5704b284d4ba3d5c9c44714f (patch)
tree5bf4ca95e26d5fd5cdccda1356a31256e231cefe
parent7fdf5e1140481c41a547351ba92b12603d45784c (diff)
downloadmullvadvpn-abeccca73438f4fc5704b284d4ba3d5c9c44714f.tar.xz
mullvadvpn-abeccca73438f4fc5704b284d4ba3d5c9c44714f.zip
Fix clippy lints
-rw-r--r--mullvad-cli/src/cmds/relay.rs5
-rw-r--r--mullvad-daemon/src/lib.rs74
-rw-r--r--mullvad-daemon/src/main.rs9
-rw-r--r--mullvad-daemon/src/management_interface.rs3
-rw-r--r--mullvad-daemon/src/migrations/v1.rs2
-rw-r--r--mullvad-daemon/src/migrations/v2.rs2
-rw-r--r--mullvad-daemon/src/migrations/v3.rs2
-rw-r--r--mullvad-daemon/src/migrations/v4.rs2
-rw-r--r--mullvad-daemon/src/migrations/v5.rs2
-rw-r--r--mullvad-daemon/src/migrations/v6.rs2
-rw-r--r--mullvad-management-interface/src/lib.rs2
-rw-r--r--mullvad-problem-report/src/lib.rs2
-rw-r--r--mullvad-relay-selector/src/lib.rs5
-rw-r--r--talpid-core/src/dns/linux/mod.rs20
-rw-r--r--talpid-core/src/dns/linux/static_resolv_conf.rs6
-rw-r--r--talpid-core/src/dns/macos.rs4
-rw-r--r--talpid-core/src/firewall/macos.rs14
-rw-r--r--talpid-core/src/resolver.rs6
-rw-r--r--talpid-core/src/split_tunnel/windows/driver.rs3
-rw-r--r--talpid-core/src/split_tunnel/windows/windows.rs3
-rw-r--r--talpid-core/src/tunnel/mod.rs5
-rw-r--r--talpid-core/src/tunnel_state_machine/connected_state.rs5
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs9
-rw-r--r--talpid-openvpn/src/lib.rs103
-rw-r--r--talpid-wireguard/src/lib.rs6
-rw-r--r--talpid-wireguard/src/wireguard_go.rs4
-rw-r--r--talpid-wireguard/src/wireguard_kernel/wg_message.rs4
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![
+ [
CidrMask(32),
AddressFamily(2),
IpAddr(Ipv4Addr::new(192, 168, 39, 2).into()),
@@ -834,7 +834,7 @@ mod test {
PeerNla::Flags(WGPEER_F_REPLACE_ALLOWEDIPS),
AllowedIps(
[AllowedIpMessage(
- vec![
+ [
AddressFamily(2),
IpAddr(Ipv4Addr::new(192, 168, 39, 2).into()),
CidrMask(32),