summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJonathan <jonathan@mullvad.net>2022-06-14 18:30:13 +0200
committerJonathan <jonathan@mullvad.net>2022-06-14 18:30:13 +0200
commitd05e8a02403d32203412d1b7c16a5267d9b43055 (patch)
treed0003d7311dfa52c58e6286e191107ec57faf19b
parent62fad28967afd8cafb16b6af1d88cc35d23f3eec (diff)
parent1b7349743318099b6b417575a6613eaf92ec077a (diff)
downloadmullvadvpn-d05e8a02403d32203412d1b7c16a5267d9b43055.tar.xz
mullvadvpn-d05e8a02403d32203412d1b7c16a5267d9b43055.zip
Merge branch 'clippy-non-semantic-manual-fixes'
-rw-r--r--mullvad-api/src/abortable_stream.rs6
-rw-r--r--mullvad-api/src/https_client_with_sni.rs9
-rw-r--r--mullvad-api/src/rest.rs10
-rw-r--r--mullvad-cli/src/cmds/disconnect.rs5
-rw-r--r--mullvad-exclude/src/main.rs2
-rw-r--r--mullvad-types/src/relay_constraints.rs16
-rw-r--r--mullvad-types/src/states.rs15
-rw-r--r--mullvad-types/src/version.rs5
-rw-r--r--mullvad-types/src/wireguard.rs1
-rw-r--r--talpid-core/src/dns/linux/mod.rs2
-rw-r--r--talpid-core/src/dns/linux/resolvconf.rs6
-rw-r--r--talpid-core/src/dns/linux/static_resolv_conf.rs3
-rw-r--r--talpid-core/src/firewall/linux.rs8
-rw-r--r--talpid-core/src/firewall/mod.rs2
-rw-r--r--talpid-core/src/mktemp.rs2
-rw-r--r--talpid-core/src/process/openvpn.rs8
-rw-r--r--talpid-core/src/routing/linux.rs25
-rw-r--r--talpid-core/src/routing/mod.rs2
-rw-r--r--talpid-core/src/split_tunnel/linux.rs2
-rw-r--r--talpid-core/src/tunnel/mod.rs6
-rw-r--r--talpid-core/src/tunnel/openvpn/mod.rs32
-rw-r--r--talpid-core/src/tunnel/wireguard/connectivity_check.rs5
-rw-r--r--talpid-core/src/tunnel/wireguard/logging.rs3
-rw-r--r--talpid-core/src/tunnel/wireguard/mod.rs8
-rw-r--r--talpid-core/src/tunnel/wireguard/stats.rs27
-rw-r--r--talpid-core/src/tunnel/wireguard/wireguard_kernel/netlink_tunnel.rs8
-rw-r--r--talpid-core/src/tunnel/wireguard/wireguard_kernel/nl_message.rs8
-rw-r--r--talpid-core/src/tunnel/wireguard/wireguard_kernel/parsers.rs2
-rw-r--r--talpid-core/src/tunnel/wireguard/wireguard_kernel/wg_message.rs27
-rw-r--r--talpid-core/src/tunnel_state_machine/connected_state.rs3
-rw-r--r--talpid-core/src/tunnel_state_machine/disconnected_state.rs6
-rw-r--r--talpid-core/src/tunnel_state_machine/disconnecting_state.rs8
-rw-r--r--talpid-core/src/tunnel_state_machine/mod.rs4
-rw-r--r--talpid-dbus/src/systemd_resolved.rs2
-rw-r--r--talpid-openvpn-plugin/src/lib.rs4
-rw-r--r--talpid-types/src/net/mod.rs4
-rw-r--r--tunnel-obfuscation/src/main.rs4
37 files changed, 127 insertions, 163 deletions
diff --git a/mullvad-api/src/abortable_stream.rs b/mullvad-api/src/abortable_stream.rs
index af217c5768..261693eb27 100644
--- a/mullvad-api/src/abortable_stream.rs
+++ b/mullvad-api/src/abortable_stream.rs
@@ -72,7 +72,7 @@ where
cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<io::Result<usize>> {
- if let Poll::Ready(_) = Pin::new(&mut self.shutdown_rx).poll(cx) {
+ if Pin::new(&mut self.shutdown_rx).poll(cx).is_ready() {
return Poll::Ready(Err(io::Error::new(
io::ErrorKind::ConnectionReset,
Aborted(()),
@@ -82,7 +82,7 @@ where
}
fn poll_flush(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<io::Result<()>> {
- if let Poll::Ready(_) = Pin::new(&mut self.shutdown_rx).poll(cx) {
+ if Pin::new(&mut self.shutdown_rx).poll(cx).is_ready() {
return Poll::Ready(Err(io::Error::new(
io::ErrorKind::ConnectionReset,
Aborted(()),
@@ -105,7 +105,7 @@ where
cx: &mut Context<'_>,
buf: &mut ReadBuf<'_>,
) -> Poll<io::Result<()>> {
- if let Poll::Ready(_) = Pin::new(&mut self.shutdown_rx).poll(cx) {
+ if Pin::new(&mut self.shutdown_rx).poll(cx).is_ready() {
return Poll::Ready(Err(io::Error::new(
io::ErrorKind::ConnectionReset,
Aborted(()),
diff --git a/mullvad-api/src/https_client_with_sni.rs b/mullvad-api/src/https_client_with_sni.rs
index cc7e2c1561..2920cf989d 100644
--- a/mullvad-api/src/https_client_with_sni.rs
+++ b/mullvad-api/src/https_client_with_sni.rs
@@ -215,10 +215,9 @@ impl HttpsConnectorWithSni {
}
async fn resolve_address(address_cache: AddressCache, uri: Uri) -> io::Result<SocketAddr> {
- let hostname = uri.host().ok_or(io::Error::new(
- io::ErrorKind::InvalidInput,
- "invalid url, missing host",
- ))?;
+ let hostname = uri.host().ok_or_else(|| {
+ io::Error::new(io::ErrorKind::InvalidInput, "invalid url, missing host")
+ })?;
let port = uri.port_u16().unwrap_or(443);
if let Ok(addr) = hostname.parse::<IpAddr>() {
return Ok(SocketAddr::new(addr, port));
@@ -241,7 +240,7 @@ impl HttpsConnectorWithSni {
.map_err(|err| io::Error::new(io::ErrorKind::Other, err))?;
let addr = addrs
.next()
- .ok_or(io::Error::new(io::ErrorKind::Other, "Empty DNS response"))?;
+ .ok_or_else(|| io::Error::new(io::ErrorKind::Other, "Empty DNS response"))?;
Ok(SocketAddr::new(addr.ip(), port))
}
}
diff --git a/mullvad-api/src/rest.rs b/mullvad-api/src/rest.rs
index fbd2986b7c..8a04c62e39 100644
--- a/mullvad-api/src/rest.rs
+++ b/mullvad-api/src/rest.rs
@@ -78,17 +78,11 @@ pub enum Error {
impl Error {
pub fn is_network_error(&self) -> bool {
- match self {
- Error::HyperError(_) | Error::TimeoutError(_) => true,
- _ => false,
- }
+ matches!(self, Error::HyperError(_) | Error::TimeoutError(_))
}
pub fn is_aborted(&self) -> bool {
- match self {
- Error::Aborted => true,
- _ => false,
- }
+ matches!(self, Error::Aborted)
}
/// Returns a new instance for which `abortable_stream::Aborted` is mapped to `Self::Aborted`.
diff --git a/mullvad-cli/src/cmds/disconnect.rs b/mullvad-cli/src/cmds/disconnect.rs
index a906eed22d..2864001656 100644
--- a/mullvad-cli/src/cmds/disconnect.rs
+++ b/mullvad-cli/src/cmds/disconnect.rs
@@ -35,9 +35,8 @@ impl Command for Disconnect {
while let Some(state) = receiver.next().await {
let state = state?;
format::print_state(&state, false);
- match state.state.unwrap() {
- Disconnected(_) => return Ok(()),
- _ => {}
+ if let Disconnected(_) = state.state.unwrap() {
+ return Ok(());
}
}
return Err(Error::StatusListenerFailed);
diff --git a/mullvad-exclude/src/main.rs b/mullvad-exclude/src/main.rs
index 420075da06..02dab6635f 100644
--- a/mullvad-exclude/src/main.rs
+++ b/mullvad-exclude/src/main.rs
@@ -51,7 +51,7 @@ fn main() {
match run() {
Err(Error::InvalidArguments) => {
let mut args = env::args();
- let program = args.next().unwrap_or(PROGRAM_NAME.to_string());
+ let program = args.next().unwrap_or_else(|| PROGRAM_NAME.to_string());
eprintln!("Usage: {} COMMAND [ARGS]", program);
std::process::exit(1);
}
diff --git a/mullvad-types/src/relay_constraints.rs b/mullvad-types/src/relay_constraints.rs
index 8da12d579b..4ea0a8dfc5 100644
--- a/mullvad-types/src/relay_constraints.rs
+++ b/mullvad-types/src/relay_constraints.rs
@@ -627,15 +627,13 @@ impl RelaySettingsUpdate {
}
RelaySettingsUpdate::Normal(update) => {
if let Some(constraints) = &update.openvpn_constraints {
- if let Constraint::Only(TransportPort {
- protocol: TransportProtocol::Udp,
- ..
- }) = &constraints.port
- {
- false
- } else {
- true
- }
+ !matches!(
+ &constraints.port,
+ Constraint::Only(TransportPort {
+ protocol: TransportProtocol::Udp,
+ ..
+ })
+ )
} else {
true
}
diff --git a/mullvad-types/src/states.rs b/mullvad-types/src/states.rs
index 700b83582f..2d139eee3d 100644
--- a/mullvad-types/src/states.rs
+++ b/mullvad-types/src/states.rs
@@ -50,25 +50,16 @@ pub enum TunnelState {
impl TunnelState {
/// Returns true if the tunnel state is in the error state.
pub fn is_in_error_state(&self) -> bool {
- match self {
- TunnelState::Error(_) => true,
- _ => false,
- }
+ matches!(self, TunnelState::Error(_))
}
/// Returns true if the tunnel state is in the connected state.
pub fn is_connected(&self) -> bool {
- match self {
- TunnelState::Connected { .. } => true,
- _ => false,
- }
+ matches!(self, TunnelState::Connected { .. })
}
/// Returns true if the tunnel state is in the disconnected state.
pub fn is_disconnected(&self) -> bool {
- match self {
- TunnelState::Disconnected => true,
- _ => false,
- }
+ matches!(self, TunnelState::Disconnected)
}
}
diff --git a/mullvad-types/src/version.rs b/mullvad-types/src/version.rs
index 16466f8259..7daf50e74b 100644
--- a/mullvad-types/src/version.rs
+++ b/mullvad-types/src/version.rs
@@ -69,10 +69,7 @@ impl ParsedAppVersion {
}
pub fn is_dev(&self) -> bool {
- match self {
- ParsedAppVersion::Dev(..) => true,
- _ => false,
- }
+ matches!(self, ParsedAppVersion::Dev(..))
}
}
diff --git a/mullvad-types/src/wireguard.rs b/mullvad-types/src/wireguard.rs
index da7f25828a..612becf010 100644
--- a/mullvad-types/src/wireguard.rs
+++ b/mullvad-types/src/wireguard.rs
@@ -1,3 +1,4 @@
+#![allow(clippy::identity_op)]
use chrono::{offset::Utc, DateTime};
#[cfg(target_os = "android")]
use jnix::IntoJava;
diff --git a/talpid-core/src/dns/linux/mod.rs b/talpid-core/src/dns/linux/mod.rs
index 3462c8adfe..5a4bfdb5da 100644
--- a/talpid-core/src/dns/linux/mod.rs
+++ b/talpid-core/src/dns/linux/mod.rs
@@ -142,7 +142,7 @@ impl DnsMonitorHolder {
static_resolv_conf.set_dns(servers.to_vec())?
}
SystemdResolved(ref mut systemd_resolved) => handle
- .block_on(systemd_resolved.set_dns(route_manager.clone(), interface, &servers))?,
+ .block_on(systemd_resolved.set_dns(route_manager.clone(), interface, servers))?,
NetworkManager(ref mut network_manager) => {
network_manager.set_dns(interface, servers)?
}
diff --git a/talpid-core/src/dns/linux/resolvconf.rs b/talpid-core/src/dns/linux/resolvconf.rs
index a9585d4ba2..ea2f3f3704 100644
--- a/talpid-core/src/dns/linux/resolvconf.rs
+++ b/talpid-core/src/dns/linux/resolvconf.rs
@@ -141,14 +141,14 @@ impl Resolvconf {
// Verify if dnsmasq is configured to ignore any external servers
// by checking for the `no-resolv` config option.
fn is_dnsmasq_configured_wrong() -> bool {
- let mut config_paths = fs::read_dir("/etc/dnsmasq.d/")
+ let mut config_paths: Vec<_> = fs::read_dir("/etc/dnsmasq.d/")
.map(|entries| {
entries
.into_iter()
.filter_map(|entry| entry.ok().map(|e| e.path()))
.collect()
})
- .unwrap_or(vec![]);
+ .unwrap_or_default();
config_paths.push(PathBuf::from("/etc/dnsmasq.conf"));
config_paths
@@ -167,7 +167,7 @@ impl Resolvconf {
Ok(contents) => contents.contains("Generated by resolvconf"),
Err(err) => {
log::error!("Couldn't read /etc/resolv.conf: {}", err);
- return false;
+ false
}
}
}
diff --git a/talpid-core/src/dns/linux/static_resolv_conf.rs b/talpid-core/src/dns/linux/static_resolv_conf.rs
index 1a867a079d..196fb31003 100644
--- a/talpid-core/src/dns/linux/static_resolv_conf.rs
+++ b/talpid-core/src/dns/linux/static_resolv_conf.rs
@@ -5,6 +5,7 @@ use resolv_conf::{Config, ScopedIp};
use std::{
fs, io,
net::IpAddr,
+ path::Path,
sync::{mpsc, Arc},
thread,
};
@@ -128,7 +129,7 @@ impl DnsWatcher {
if event
.path
.as_ref()
- .map(|p| p.as_path() == &RESOLV_CONF_PATH.as_ref())
+ .map(|p| p.as_path() == AsRef::<Path>::as_ref(RESOLV_CONF_PATH))
.unwrap_or(false)
{
let mut locked_state = state.lock();
diff --git a/talpid-core/src/firewall/linux.rs b/talpid-core/src/firewall/linux.rs
index 4d66e94b1a..24d52eb718 100644
--- a/talpid-core/src/firewall/linux.rs
+++ b/talpid-core/src/firewall/linux.rs
@@ -334,7 +334,7 @@ impl<'a> PolicyBatch<'a> {
{
for server in dns_servers
.iter()
- .filter(|server| !is_local_dns_address(&tunnel, server))
+ .filter(|server| !is_local_dns_address(tunnel, server))
{
let chain = if server.is_ipv4() {
&self.mangle_chain_v4
@@ -594,8 +594,8 @@ impl<'a> PolicyBatch<'a> {
dns_servers,
} => {
self.add_allow_tunnel_endpoint_rules(peer_endpoint);
- self.add_allow_dns_rules(tunnel, &dns_servers, TransportProtocol::Udp)?;
- self.add_allow_dns_rules(tunnel, &dns_servers, TransportProtocol::Tcp)?;
+ self.add_allow_dns_rules(tunnel, dns_servers, TransportProtocol::Udp)?;
+ self.add_allow_dns_rules(tunnel, dns_servers, TransportProtocol::Tcp)?;
// Important to block DNS *before* we allow the tunnel and allow LAN. So DNS
// can't leak to the wrong IPs in the tunnel or on the LAN.
self.add_drop_dns_rule();
@@ -945,7 +945,7 @@ fn allow_interface_rule<'a>(
direction: Direction,
iface: &str,
) -> Result<Rule<'a>> {
- let mut rule = Rule::new(&chain);
+ let mut rule = Rule::new(chain);
check_iface(&mut rule, direction, iface)?;
add_verdict(&mut rule, &Verdict::Accept);
diff --git a/talpid-core/src/firewall/mod.rs b/talpid-core/src/firewall/mod.rs
index a72ad65b1b..c2898fe05f 100644
--- a/talpid-core/src/firewall/mod.rs
+++ b/talpid-core/src/firewall/mod.rs
@@ -84,7 +84,7 @@ const ROOT_UID: u32 = 0;
#[cfg(any(all(unix, not(target_os = "android")), target_os = "windows"))]
/// Returns whether an address belongs to a private subnet.
pub fn is_local_address(address: &IpAddr) -> bool {
- let address = address.clone();
+ let address = *address;
(&*ALLOWED_LAN_NETS)
.iter()
.chain(&*LOOPBACK_NETS)
diff --git a/talpid-core/src/mktemp.rs b/talpid-core/src/mktemp.rs
index b5b5ec0719..9e5709ce1f 100644
--- a/talpid-core/src/mktemp.rs
+++ b/talpid-core/src/mktemp.rs
@@ -25,7 +25,7 @@ impl TempFile {
impl AsRef<Path> for TempFile {
fn as_ref(&self) -> &Path {
- &self.path.as_path()
+ self.path.as_path()
}
}
diff --git a/talpid-core/src/process/openvpn.rs b/talpid-core/src/process/openvpn.rs
index 4dd594a2f2..0c4a9580f8 100644
--- a/talpid-core/src/process/openvpn.rs
+++ b/talpid-core/src/process/openvpn.rs
@@ -307,10 +307,10 @@ impl OpenVpnCommand {
}
fn tls_cipher_arguments() -> Vec<String> {
- let mut args = vec![];
- args.push("--tls-ciphersuites".to_owned());
- args.push(ALLOWED_TLS1_3_CIPHERS.join(":"));
- args
+ vec![
+ "--tls-ciphersuites".to_owned(),
+ ALLOWED_TLS1_3_CIPHERS.join(":"),
+ ]
}
fn remote_arguments(&self) -> Vec<String> {
diff --git a/talpid-core/src/routing/linux.rs b/talpid-core/src/routing/linux.rs
index 2a34de42cd..092ad6f52a 100644
--- a/talpid-core/src/routing/linux.rs
+++ b/talpid-core/src/routing/linux.rs
@@ -319,7 +319,7 @@ impl RouteManagerImpl {
async fn cleanup_routes(&mut self) {
for route in self.added_routes.drain().collect::<Vec<_>>().iter() {
- if let Err(e) = self.delete_route_if_exists(&route).await {
+ if let Err(e) = self.delete_route_if_exists(route).await {
log::error!("Failed to remove route: {}: {}", route, e);
}
}
@@ -446,7 +446,7 @@ impl RouteManagerImpl {
for nla in msg.nlas.iter() {
match nla {
RouteNla::Oif(device_idx) => {
- match self.iface_map.get(&device_idx) {
+ match self.iface_map.get(device_idx) {
Some(route_device) => {
if !route_device.is_loopback() {
device = Some(route_device);
@@ -465,11 +465,11 @@ impl RouteManagerImpl {
}
RouteNla::Via(addr) => {
- node_addr = Self::parse_ip(&addr).map(Some)?;
+ node_addr = Self::parse_ip(addr).map(Some)?;
}
RouteNla::Destination(addr) => {
- prefix = Self::parse_ip(&addr).and_then(|ip| {
+ prefix = Self::parse_ip(addr).and_then(|ip| {
ipnetwork::IpNetwork::new(ip, destination_length)
.map_err(Error::InvalidNetworkPrefix)
})?;
@@ -477,7 +477,7 @@ impl RouteManagerImpl {
// gateway NLAs indicate that this is actually a default route
RouteNla::Gateway(gateway_ip) => {
- gateway = Self::parse_ip(&gateway_ip).map(Some)?;
+ gateway = Self::parse_ip(gateway_ip).map(Some)?;
}
RouteNla::Priority(priority) => {
@@ -496,17 +496,16 @@ impl RouteManagerImpl {
}
let node = Node {
- ip: node_addr.or(gateway.into()),
+ ip: node_addr.or(gateway),
device: device.map(|dev| dev.name.clone()),
};
- let result = Ok(Some(Route {
+ Ok(Some(Route {
node,
prefix,
metric,
table_id,
- }));
- result
+ }))
}
fn map_interface(msg: LinkMessage) -> Option<(u32, NetworkInterface)> {
@@ -544,11 +543,9 @@ impl RouteManagerImpl {
async fn delete_route_if_exists(&self, route: &Route) -> Result<()> {
if let Err(error) = self.delete_route(route).await {
- if let Error::NetlinkError(netlink_error) = &error {
- if let rtnetlink::Error::NetlinkError(msg) = &netlink_error {
- if msg.code == -libc::ESRCH {
- return Ok(());
- }
+ if let Error::NetlinkError(rtnetlink::Error::NetlinkError(msg)) = &error {
+ if msg.code == -libc::ESRCH {
+ return Ok(());
}
}
Err(error)
diff --git a/talpid-core/src/routing/mod.rs b/talpid-core/src/routing/mod.rs
index 3e461f3470..1eb02a206b 100644
--- a/talpid-core/src/routing/mod.rs
+++ b/talpid-core/src/routing/mod.rs
@@ -86,7 +86,7 @@ impl RequiredRoute {
node: node.into(),
prefix,
#[cfg(target_os = "linux")]
- table_id: u32::from(crate::linux::TUNNEL_TABLE_ID),
+ table_id: crate::linux::TUNNEL_TABLE_ID,
}
}
diff --git a/talpid-core/src/split_tunnel/linux.rs b/talpid-core/src/split_tunnel/linux.rs
index d11306a646..2ba63dda9e 100644
--- a/talpid-core/src/split_tunnel/linux.rs
+++ b/talpid-core/src/split_tunnel/linux.rs
@@ -74,7 +74,7 @@ impl PidManager {
let net_cls_dir = env::var(NET_CLS_DIR_OVERRIDE_ENV_VAR)
.map(PathBuf::from)
- .unwrap_or(PathBuf::from(DEFAULT_NET_CLS_DIR));
+ .unwrap_or_else(|_| PathBuf::from(DEFAULT_NET_CLS_DIR));
if !net_cls_dir.exists() {
fs::create_dir_all(&net_cls_dir).map_err(Error::CreateCGroup)?;
diff --git a/talpid-core/src/tunnel/mod.rs b/talpid-core/src/tunnel/mod.rs
index bafc839cf6..5da3c092a4 100644
--- a/talpid-core/src/tunnel/mod.rs
+++ b/talpid-core/src/tunnel/mod.rs
@@ -121,13 +121,13 @@ impl TunnelMonitor {
+ Sync
+ 'static,
{
- Self::ensure_ipv6_can_be_used_if_enabled(&tunnel_parameters)?;
- let log_file = Self::prepare_tunnel_log_file(&tunnel_parameters, log_dir)?;
+ Self::ensure_ipv6_can_be_used_if_enabled(tunnel_parameters)?;
+ let log_file = Self::prepare_tunnel_log_file(tunnel_parameters, log_dir)?;
match tunnel_parameters {
#[cfg(not(target_os = "android"))]
TunnelParameters::OpenVpn(config) => runtime.block_on(Self::start_openvpn_tunnel(
- &config,
+ config,
log_file,
resource_dir,
on_event,
diff --git a/talpid-core/src/tunnel/openvpn/mod.rs b/talpid-core/src/tunnel/openvpn/mod.rs
index d9ddf8dd9a..910d5bb49e 100644
--- a/talpid-core/src/tunnel/openvpn/mod.rs
+++ b/talpid-core/src/tunnel/openvpn/mod.rs
@@ -274,16 +274,14 @@ impl OpenVpnMonitor<OpenVpnCommand> {
let proxy_auth_file =
Self::create_proxy_auth_file(&params.proxy).map_err(Error::CredentialsWriteError)?;
let user_pass_file_path = user_pass_file.to_path_buf();
- let proxy_auth_file_path = match proxy_auth_file {
- Some(ref file) => Some(file.to_path_buf()),
- _ => None,
- };
+ let proxy_auth_file_path = proxy_auth_file.as_ref().map(|file| file.to_path_buf());
- let log_dir: Option<PathBuf> = if let Some(ref log_path) = log_path {
- Some(log_path.parent().expect("log_path has no parent").into())
- } else {
- None
- };
+ let log_dir = log_path.as_ref().map(|log_path| {
+ log_path
+ .parent()
+ .expect("log_path has no parent")
+ .to_path_buf()
+ });
let proxy_resources = proxy::ProxyResourceData {
resource_dir: resource_dir.to_path_buf(),
@@ -398,7 +396,7 @@ impl<C: OpenVpnBuilder + Send + 'static> OpenVpnMonitor<C> {
let wintun = Arc::new(wintun);
cmd.plugin(plugin_path, vec![ipc_path])
- .log(log_path.as_ref().map(|p| p.as_path()));
+ .log(log_path.as_deref());
let (spawn_task, abort_spawn) = futures::future::abortable(Self::prepare_process(
cmd,
#[cfg(windows)]
@@ -946,14 +944,14 @@ mod event_server {
) -> std::result::Result<TunnelMetadata, tonic::Status> {
let tunnel_alias = env
.get("dev")
- .ok_or(tonic::Status::invalid_argument("missing tunnel alias"))?
+ .ok_or_else(|| tonic::Status::invalid_argument("missing tunnel alias"))?
.to_string();
let mut ips = vec![env
.get("ifconfig_local")
- .ok_or(tonic::Status::invalid_argument(
- "missing \"ifconfig_local\" in up event",
- ))?
+ .ok_or_else(|| {
+ tonic::Status::invalid_argument("missing \"ifconfig_local\" in up event")
+ })?
.parse()
.map_err(|_| tonic::Status::invalid_argument("Invalid tunnel IPv4 address"))?];
if let Some(ipv6_address) = env.get("ifconfig_ipv6_local") {
@@ -965,9 +963,9 @@ mod event_server {
}
let ipv4_gateway = env
.get("route_vpn_gateway")
- .ok_or(tonic::Status::invalid_argument(
- "No \"route_vpn_gateway\" in tunnel up event",
- ))?
+ .ok_or_else(|| {
+ tonic::Status::invalid_argument("No \"route_vpn_gateway\" in tunnel up event")
+ })?
.parse()
.map_err(|_| {
tonic::Status::invalid_argument("Invalid tunnel gateway IPv4 address")
diff --git a/talpid-core/src/tunnel/wireguard/connectivity_check.rs b/talpid-core/src/tunnel/wireguard/connectivity_check.rs
index bcb28d7c17..c48f816f2e 100644
--- a/talpid-core/src/tunnel/wireguard/connectivity_check.rs
+++ b/talpid-core/src/tunnel/wireguard/connectivity_check.rs
@@ -382,10 +382,7 @@ impl ConnState {
}
pub fn connected(&self) -> bool {
- match self {
- ConnState::Connected { .. } => true,
- _ => false,
- }
+ matches!(self, ConnState::Connected { .. })
}
}
diff --git a/talpid-core/src/tunnel/wireguard/logging.rs b/talpid-core/src/tunnel/wireguard/logging.rs
index e795326854..1a7a52ed8b 100644
--- a/talpid-core/src/tunnel/wireguard/logging.rs
+++ b/talpid-core/src/tunnel/wireguard/logging.rs
@@ -36,7 +36,8 @@ static NULL_DEVICE: &str = "NUL";
static NULL_DEVICE: &str = "/dev/null";
fn create_log_file(log_path: Option<&Path>) -> Result<fs::File, Error> {
- fs::File::create(log_path.unwrap_or(NULL_DEVICE.as_ref())).map_err(Error::PrepareLogFileError)
+ fs::File::create(log_path.unwrap_or_else(|| NULL_DEVICE.as_ref()))
+ .map_err(Error::PrepareLogFileError)
}
pub fn clean_up_logging(ordinal: u32) {
diff --git a/talpid-core/src/tunnel/wireguard/mod.rs b/talpid-core/src/tunnel/wireguard/mod.rs
index 3d0de8ba5c..b5ee282b7e 100644
--- a/talpid-core/src/tunnel/wireguard/mod.rs
+++ b/talpid-core/src/tunnel/wireguard/mod.rs
@@ -230,7 +230,7 @@ impl WireguardMonitor {
#[cfg(target_os = "windows")]
setup_done_tx,
)?;
- let iface_name = tunnel.get_interface_name().to_string();
+ let iface_name = tunnel.get_interface_name();
let event_callback = Box::new(on_event.clone());
let (pinger_tx, pinger_rx) = sync_mpsc::channel();
@@ -544,7 +544,7 @@ impl WireguardMonitor {
log::debug!("Using userspace WireGuard implementation");
Ok(Box::new(
WgGoTunnel::start_tunnel(
- &config,
+ config,
log_path,
#[cfg(not(windows))]
tun_provider,
@@ -591,9 +591,7 @@ impl WireguardMonitor {
/// Returns routes to the peer endpoints (through the physical interface).
#[cfg_attr(target_os = "linux", allow(unused_variables))]
- fn get_endpoint_routes<'a>(
- endpoints: &'a [IpAddr],
- ) -> impl Iterator<Item = RequiredRoute> + 'a {
+ fn get_endpoint_routes(endpoints: &[IpAddr]) -> impl Iterator<Item = RequiredRoute> + '_ {
#[cfg(target_os = "linux")]
{
// No need due to policy based routing.
diff --git a/talpid-core/src/tunnel/wireguard/stats.rs b/talpid-core/src/tunnel/wireguard/stats.rs
index e9a22a906a..bda8af2e1f 100644
--- a/talpid-core/src/tunnel/wireguard/stats.rs
+++ b/talpid-core/src/tunnel/wireguard/stats.rs
@@ -72,20 +72,19 @@ impl Stats {
_ => continue,
}
- match (peer, tx_bytes, rx_bytes) {
- (Some(peer_val), Some(tx_bytes_val), Some(rx_bytes_val)) => {
- map.insert(
- peer_val,
- Self {
- tx_bytes: tx_bytes_val,
- rx_bytes: rx_bytes_val,
- },
- );
- peer = None;
- tx_bytes = None;
- rx_bytes = None;
- }
- _ => (),
+ if let (Some(peer_val), Some(tx_bytes_val), Some(rx_bytes_val)) =
+ (peer, tx_bytes, rx_bytes)
+ {
+ map.insert(
+ peer_val,
+ Self {
+ tx_bytes: tx_bytes_val,
+ rx_bytes: rx_bytes_val,
+ },
+ );
+ peer = None;
+ tx_bytes = None;
+ rx_bytes = None;
}
}
Ok(map)
diff --git a/talpid-core/src/tunnel/wireguard/wireguard_kernel/netlink_tunnel.rs b/talpid-core/src/tunnel/wireguard/wireguard_kernel/netlink_tunnel.rs
index 109ae75367..b1159bb6de 100644
--- a/talpid-core/src/tunnel/wireguard/wireguard_kernel/netlink_tunnel.rs
+++ b/talpid-core/src/tunnel/wireguard/wireguard_kernel/netlink_tunnel.rs
@@ -72,7 +72,7 @@ impl Tunnel for NetlinkTunnel {
return Ok(name);
}
}
- return Err(Error::Truncated);
+ Err(Error::Truncated)
});
match result {
@@ -103,15 +103,13 @@ impl Tunnel for NetlinkTunnel {
fn get_tunnel_stats(&self) -> std::result::Result<StatsMap, TunnelError> {
let mut wg = self.netlink_connections.wg_handle.clone();
let interface_index = self.interface_index;
- let result = self.tokio_handle.block_on(async move {
+ self.tokio_handle.block_on(async move {
let device = wg.get_by_index(interface_index).await.map_err(|err| {
log::error!("Failed to fetch WireGuard device config: {}", err);
TunnelError::GetConfigError
})?;
Ok(Stats::parse_device_message(&device))
- });
-
- result
+ })
}
fn set_config(
diff --git a/talpid-core/src/tunnel/wireguard/wireguard_kernel/nl_message.rs b/talpid-core/src/tunnel/wireguard/wireguard_kernel/nl_message.rs
index 1fc5b36e9f..cf206f501a 100644
--- a/talpid-core/src/tunnel/wireguard/wireguard_kernel/nl_message.rs
+++ b/talpid-core/src/tunnel/wireguard/wireguard_kernel/nl_message.rs
@@ -47,13 +47,13 @@ impl NetlinkSerializable<NetlinkControlMessage> for NetlinkControlMessage {
fn serialize(&self, mut buffer: &mut [u8]) {
let _ = buffer.write(&[self.cmd, self.version, 0u8, 0u8]).unwrap();
- self.nlas.as_slice().emit(&mut buffer);
+ self.nlas.as_slice().emit(buffer);
}
}
-impl Into<NetlinkPayload<NetlinkControlMessage>> for NetlinkControlMessage {
- fn into(self) -> NetlinkPayload<NetlinkControlMessage> {
- NetlinkPayload::InnerMessage(self)
+impl From<NetlinkControlMessage> for NetlinkPayload<NetlinkControlMessage> {
+ fn from(msg: NetlinkControlMessage) -> Self {
+ NetlinkPayload::InnerMessage(msg)
}
}
diff --git a/talpid-core/src/tunnel/wireguard/wireguard_kernel/parsers.rs b/talpid-core/src/tunnel/wireguard/wireguard_kernel/parsers.rs
index b34c82d342..f08b2d6dfa 100644
--- a/talpid-core/src/tunnel/wireguard/wireguard_kernel/parsers.rs
+++ b/talpid-core/src/tunnel/wireguard/wireguard_kernel/parsers.rs
@@ -54,7 +54,7 @@ pub fn parse_inet_sockaddr(buffer: &[u8]) -> Result<InetAddr, DecodeError> {
match NativeEndian::read_u16(buffer) {
AF_INET => unsafe {
let sockaddr: *const libc::sockaddr_in = ptr as *const _;
- Ok(InetAddr::V4(*sockaddr).into())
+ Ok(InetAddr::V4(*sockaddr))
},
AF_INET6 => unsafe {
let sockaddr: *const libc::sockaddr_in6 = ptr as *const _;
diff --git a/talpid-core/src/tunnel/wireguard/wireguard_kernel/wg_message.rs b/talpid-core/src/tunnel/wireguard/wireguard_kernel/wg_message.rs
index dd17bc0cb3..0beac84f83 100644
--- a/talpid-core/src/tunnel/wireguard/wireguard_kernel/wg_message.rs
+++ b/talpid-core/src/tunnel/wireguard/wireguard_kernel/wg_message.rs
@@ -161,12 +161,13 @@ impl NetlinkSerializable<DeviceMessage> for DeviceMessage {
fn serialize(&self, mut buffer: &mut [u8]) {
let command_buf = [self.command, WG_GENL_VERSION, 0u8, 0u8];
let _ = buffer.write(&command_buf).unwrap();
- self.nlas.as_slice().emit(&mut buffer)
+ self.nlas.as_slice().emit(buffer)
}
}
-impl Into<NetlinkPayload<DeviceMessage>> for DeviceMessage {
- fn into(self) -> NetlinkPayload<DeviceMessage> {
- NetlinkPayload::InnerMessage(self)
+
+impl From<DeviceMessage> for NetlinkPayload<DeviceMessage> {
+ fn from(msg: DeviceMessage) -> Self {
+ NetlinkPayload::InnerMessage(msg)
}
}
@@ -250,7 +251,7 @@ impl Nla for DeviceNla {
peers.as_slice().emit(buffer);
}
Unspec(payload) => {
- let _ = buffer.write(&payload).expect("Failed to write ");
+ let _ = buffer.write(payload).expect("Failed to write ");
}
}
}
@@ -266,8 +267,8 @@ impl<'a, T: AsRef<[u8]> + 'a + ?Sized + core::fmt::Debug> Parseable<NlaBuffer<&'
let nla = match kind {
WGDEVICE_A_IFINDEX => IfIndex(parsers::parse_u32(value)?),
WGDEVICE_A_IFNAME => IfName(parsers::parse_cstring(value)?),
- WGDEVICE_A_PRIVATE_KEY => PrivateKey(parsers::parse_wg_key(value)?.into()),
- WGDEVICE_A_PUBLIC_KEY => PublicKey(parsers::parse_wg_key(value)?.into()),
+ WGDEVICE_A_PRIVATE_KEY => PrivateKey(parsers::parse_wg_key(value)?),
+ WGDEVICE_A_PUBLIC_KEY => PublicKey(parsers::parse_wg_key(value)?),
WGDEVICE_A_FLAGS => Flags(parsers::parse_u32(value)?),
WGDEVICE_A_LISTEN_PORT => ListenPort(parsers::parse_u16(value)?),
WGDEVICE_A_FWMARK => Fwmark(parsers::parse_u32(value)?),
@@ -276,7 +277,7 @@ impl<'a, T: AsRef<[u8]> + 'a + ?Sized + core::fmt::Debug> Parseable<NlaBuffer<&'
.map(|nla_bytes| {
let buf = nla_bytes?;
let val = buf.value();
- PeerMessage::parse(&val)
+ PeerMessage::parse(val)
})
.collect::<Result<Vec<PeerMessage>, DecodeError>>()?;
Peers(peers)
@@ -414,7 +415,7 @@ impl Nla for PeerNla {
AllowedIps(ips) => ips.as_slice().emit(buffer),
Unspec(payload) => {
let _ = buffer
- .write(&payload)
+ .write(payload)
.expect("Buffer too small for unspecified payload");
}
}
@@ -426,8 +427,8 @@ impl<'a, T: AsRef<[u8]> + 'a + ?Sized> Parseable<NlaBuffer<&'a T>> for PeerNla {
use PeerNla::*;
let value = buf.value();
let nla = match buf.kind() {
- WGPEER_A_PUBLIC_KEY => PublicKey(parsers::parse_wg_key(value)?.into()),
- WGPEER_A_PRESHARED_KEY => PresharedKey(parsers::parse_wg_key(value)?.into()),
+ WGPEER_A_PUBLIC_KEY => PublicKey(parsers::parse_wg_key(value)?),
+ WGPEER_A_PRESHARED_KEY => PresharedKey(parsers::parse_wg_key(value)?),
WGPEER_A_FLAGS => Flags(parsers::parse_u32(value)?),
WGPEER_A_ENDPOINT => Endpoint(parsers::parse_inet_sockaddr(value)?),
WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL => {
@@ -469,7 +470,7 @@ impl From<&IpNetwork> for AllowedIpMessage {
AllowedIpMessage(vec![
AddressFamily(address_family as u16),
CidrMask(ip.prefix()),
- IpAddr(ip.ip().into()),
+ IpAddr(ip.ip()),
])
}
}
@@ -540,7 +541,7 @@ impl Nla for AllowedIpNla {
CidrMask(cidr_mask) => buffer[0] = *cidr_mask,
Unspec(payload) => {
let _ = buffer
- .write(&payload)
+ .write(payload)
.expect("Buffer too small for unspec payload");
}
}
diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs
index 80e5e28957..e166f15986 100644
--- a/talpid-core/src/tunnel_state_machine/connected_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connected_state.rs
@@ -87,8 +87,7 @@ impl ConnectedState {
if let Some(ref servers) = shared_values.dns_servers {
servers.clone()
} else {
- let mut dns_ips = vec![];
- dns_ips.push(self.metadata.ipv4_gateway.into());
+ let mut dns_ips = vec![self.metadata.ipv4_gateway.into()];
if let Some(ipv6_gateway) = self.metadata.ipv6_gateway {
dns_ips.push(ipv6_gateway.into());
};
diff --git a/talpid-core/src/tunnel_state_machine/disconnected_state.rs b/talpid-core/src/tunnel_state_machine/disconnected_state.rs
index fa91284f6b..7b54384780 100644
--- a/talpid-core/src/tunnel_state_machine/disconnected_state.rs
+++ b/talpid-core/src/tunnel_state_machine/disconnected_state.rs
@@ -28,13 +28,11 @@ impl DisconnectedState {
dns_redirect_port: shared_values.filtering_resolver.listening_port(),
};
- let firewall_result = shared_values.firewall.apply_policy(policy).map_err(|e| {
+ shared_values.firewall.apply_policy(policy).map_err(|e| {
e.display_chain_with_msg(
"Failed to apply blocking firewall policy for disconnected state",
)
- });
-
- firewall_result
+ })
} else if should_reset_firewall {
shared_values
.firewall
diff --git a/talpid-core/src/tunnel_state_machine/disconnecting_state.rs b/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
index 2a14d881d6..8e7e85fd36 100644
--- a/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
@@ -193,12 +193,10 @@ impl TunnelState for DisconnectingState {
let result = if self.tunnel_close_event.is_terminated() {
if commands.is_done() {
EventResult::Close(Ok(None))
+ } else if let Ok(command) = commands.get_mut().try_next() {
+ EventResult::Command(command)
} else {
- if let Ok(command) = commands.get_mut().try_next() {
- EventResult::Command(command)
- } else {
- EventResult::Close(Ok(None))
- }
+ EventResult::Close(Ok(None))
}
} else {
runtime.block_on(async {
diff --git a/talpid-core/src/tunnel_state_machine/mod.rs b/talpid-core/src/tunnel_state_machine/mod.rs
index fc1a073ccb..3552eeab61 100644
--- a/talpid-core/src/tunnel_state_machine/mod.rs
+++ b/talpid-core/src/tunnel_state_machine/mod.rs
@@ -456,7 +456,7 @@ impl SharedTunnelStateValues {
dns_servers: Option<Vec<IpAddr>>,
) -> Result<bool, ErrorStateCause> {
if self.dns_servers != dns_servers {
- self.dns_servers = dns_servers.clone();
+ self.dns_servers = dns_servers;
#[cfg(target_os = "android")]
{
@@ -464,7 +464,7 @@ impl SharedTunnelStateValues {
.tun_provider
.lock()
.unwrap()
- .set_dns_servers(dns_servers)
+ .set_dns_servers(self.dns_servers.clone())
{
log::error!(
"{}",
diff --git a/talpid-dbus/src/systemd_resolved.rs b/talpid-dbus/src/systemd_resolved.rs
index 99b73980d8..d664872557 100644
--- a/talpid-dbus/src/systemd_resolved.rs
+++ b/talpid-dbus/src/systemd_resolved.rs
@@ -199,7 +199,7 @@ impl SystemdResolved {
/// it returns false, otherwise it checks whether the static stub file points to the local
/// resolver. If not, the file has been _meddled_ with, so we can't trust it.
fn resolv_conf_is_static_stub(link_path: &Path) -> Result<bool> {
- if link_path == &STATIC_STUB_PATH.as_ref() {
+ if link_path == AsRef::<Path>::as_ref(STATIC_STUB_PATH) {
let points_to_localhost = fs::read_to_string(link_path)
.map(|contents| {
let parts = contents.trim().split(' ');
diff --git a/talpid-openvpn-plugin/src/lib.rs b/talpid-openvpn-plugin/src/lib.rs
index 943ee8dabc..0f9bb914a6 100644
--- a/talpid-openvpn-plugin/src/lib.rs
+++ b/talpid-openvpn-plugin/src/lib.rs
@@ -94,8 +94,8 @@ fn openvpn_event(
let parsed_env = openvpn_plugin::ffi::parse::env_utf8(&env).map_err(Error::ParseEnvFailed)?;
- let mut ctx = handle
- .lock()
+ let ctx = handle
+ .get_mut()
.expect("failed to obtain mutex for EventProcessor");
if let Some(processor) = ctx.as_mut() {
match processor.process_event(event, parsed_env) {
diff --git a/talpid-types/src/net/mod.rs b/talpid-types/src/net/mod.rs
index a35c227ddd..16a30bc57d 100644
--- a/talpid-types/src/net/mod.rs
+++ b/talpid-types/src/net/mod.rs
@@ -41,7 +41,7 @@ impl TunnelParameters {
endpoint: params
.connection
.get_exit_endpoint()
- .unwrap_or(params.connection.get_endpoint()),
+ .unwrap_or_else(|| params.connection.get_endpoint()),
proxy: None,
obfuscation: params.obfuscation.as_ref().map(ObfuscationEndpoint::from),
entry_endpoint: params
@@ -64,7 +64,7 @@ impl TunnelParameters {
.obfuscation
.as_ref()
.map(Self::get_obfuscator_endpoint)
- .unwrap_or(params.connection.get_endpoint()),
+ .unwrap_or_else(|| params.connection.get_endpoint()),
}
}
diff --git a/tunnel-obfuscation/src/main.rs b/tunnel-obfuscation/src/main.rs
index db613f773b..cdc1046601 100644
--- a/tunnel-obfuscation/src/main.rs
+++ b/tunnel-obfuscation/src/main.rs
@@ -16,8 +16,8 @@ async fn main() {
}
}
-async fn instantiate_requested(obfuscator_type: &String) -> Box<dyn Obfuscator> {
- match obfuscator_type.as_str() {
+async fn instantiate_requested(obfuscator_type: &str) -> Box<dyn Obfuscator> {
+ match obfuscator_type {
"udp2tcp" => {
let settings = Udp2TcpSettings {
peer: SocketAddr::new("127.0.0.1".parse().unwrap(), 3030),