summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-10-08 13:11:10 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-10-08 13:11:10 +0200
commit489adce8bae8267085e239e810a764c3c04f5468 (patch)
tree7f646331a2dc405b8c927ddb5b90130e73003ad9
parent77897b7637a9e55f45f6d79f7db5b78940b18797 (diff)
parentf2d94f015c7f8278342d04ffe0eb7e91e22d8e0d (diff)
downloadmullvadvpn-489adce8bae8267085e239e810a764c3c04f5468.tar.xz
mullvadvpn-489adce8bae8267085e239e810a764c3c04f5468.zip
Merge branch 'minor-refactor'
-rw-r--r--mullvad-daemon/src/lib.rs58
-rw-r--r--talpid-core/src/dns/linux/systemd_resolved.rs4
2 files changed, 18 insertions, 44 deletions
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 46d44c18d9..43ec701c93 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -1368,47 +1368,23 @@ where
update: ExcludedPathsUpdate,
tx: ResponseTx<(), Error>,
) {
- match update {
- ExcludedPathsUpdate::SetState(state) => {
- let save_result = self
- .settings
- .set_split_tunnel_state(state)
- .await
- .map_err(Error::SettingsError);
- match save_result {
- Ok(true) => {
- let _ = tx.send(Ok(()));
- self.event_listener
- .notify_settings(self.settings.to_settings());
- }
- Ok(false) => {
- let _ = tx.send(Ok(()));
- }
- Err(error) => {
- let _ = tx.send(Err(error));
- }
- }
- }
- ExcludedPathsUpdate::SetPaths(paths) => {
- let save_result = self
- .settings
- .set_split_tunnel_apps(paths)
- .await
- .map_err(Error::SettingsError);
- match save_result {
- Ok(true) => {
- let _ = tx.send(Ok(()));
- self.event_listener
- .notify_settings(self.settings.to_settings());
- }
- Ok(false) => {
- let _ = tx.send(Ok(()));
- }
- Err(error) => {
- let _ = tx.send(Err(error));
- }
- }
- }
+ let save_result = match update {
+ ExcludedPathsUpdate::SetState(state) => self
+ .settings
+ .set_split_tunnel_state(state)
+ .await
+ .map_err(Error::SettingsError),
+ ExcludedPathsUpdate::SetPaths(paths) => self
+ .settings
+ .set_split_tunnel_apps(paths)
+ .await
+ .map_err(Error::SettingsError),
+ };
+ let changed = *save_result.as_ref().unwrap_or(&false);
+ let _ = tx.send(save_result.map(|_| ()));
+ if changed {
+ self.event_listener
+ .notify_settings(self.settings.to_settings());
}
}
diff --git a/talpid-core/src/dns/linux/systemd_resolved.rs b/talpid-core/src/dns/linux/systemd_resolved.rs
index c47bd7ee63..c036d82dae 100644
--- a/talpid-core/src/dns/linux/systemd_resolved.rs
+++ b/talpid-core/src/dns/linux/systemd_resolved.rs
@@ -299,9 +299,7 @@ impl SystemdResolved {
let initial_states = {
let mut initial_states = self.initial_states.lock().unwrap();
- let states = initial_states.clone();
- initial_states.clear();
- states
+ std::mem::take(&mut *initial_states)
};
for (iface, state) in &initial_states {
let result = if *iface == self.tunnel_index {