summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2025-01-17 10:16:47 +0100
committerMarkus Pettersson <markus.pettersson@mullvad.net>2025-01-22 13:53:55 +0100
commit4460cffe054692f95a6b87ca29ad8fe6a4958738 (patch)
tree4c0023bfd165247d27b766ee3e3c0cef315de9e1
parentbfd755f229dcb5d6391e8409634881670601f70d (diff)
downloadmullvadvpn-4460cffe054692f95a6b87ca29ad8fe6a4958738.tar.xz
mullvadvpn-4460cffe054692f95a6b87ca29ad8fe6a4958738.zip
Avoid cloning settings
-rw-r--r--mullvad-daemon/src/lib.rs10
-rw-r--r--mullvad-daemon/src/settings/mod.rs4
2 files changed, 9 insertions, 5 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 1b207b5086..aa6a21a564 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -1021,7 +1021,7 @@ impl Daemon {
TunnelStateTransition::Disconnected => TunnelState::Disconnected { location: None },
TunnelStateTransition::Connecting(endpoint) => {
let feature_indicators = compute_feature_indicators(
- &self.settings.to_settings(),
+ self.settings.settings(),
&endpoint,
self.parameters_generator.last_relay_was_overridden().await,
);
@@ -1033,7 +1033,7 @@ impl Daemon {
}
TunnelStateTransition::Connected(endpoint) => {
let feature_indicators = compute_feature_indicators(
- &self.settings.to_settings(),
+ self.settings.settings(),
&endpoint,
self.parameters_generator.last_relay_was_overridden().await,
);
@@ -1199,7 +1199,7 @@ impl Daemon {
.active_features()
.any(|f| matches!(&f, FeatureIndicator::ServerIpOverride));
let new_feature_indicators =
- compute_feature_indicators(&self.settings.to_settings(), endpoint, ip_override);
+ compute_feature_indicators(self.settings.settings(), endpoint, ip_override);
// Update and broadcast the new feature indicators if they have changed
if *feature_indicators != new_feature_indicators {
// Make sure to update the daemon's actual tunnel state. Otherwise, feature
@@ -1541,7 +1541,7 @@ impl Daemon {
let save_result = match update {
ExcludedPathsUpdate::SetState(state) => {
let split_tunnel_was_enabled =
- self.settings.to_settings().split_tunnel.enable_exclusions;
+ self.settings.settings().split_tunnel.enable_exclusions;
let save_result = self
.settings
.update(move |settings| settings.split_tunnel.enable_exclusions = state)
@@ -2533,7 +2533,7 @@ impl Daemon {
{
Ok(settings_changed) => {
if settings_changed {
- let settings = self.settings.to_settings();
+ let settings = self.settings.settings();
let resolvers =
dns::addresses_from_options(&settings.tunnel_options.dns_options);
self.send_tunnel_command(TunnelCommand::Dns(
diff --git a/mullvad-daemon/src/settings/mod.rs b/mullvad-daemon/src/settings/mod.rs
index 33513d90da..dcb7e56106 100644
--- a/mullvad-daemon/src/settings/mod.rs
+++ b/mullvad-daemon/src/settings/mod.rs
@@ -248,6 +248,10 @@ impl SettingsPersister {
Ok(())
}
+ pub const fn settings(&self) -> &Settings {
+ &self.settings
+ }
+
pub fn to_settings(&self) -> Settings {
self.settings.clone()
}