diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-10-08 13:11:10 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-10-08 13:11:10 +0200 |
| commit | 489adce8bae8267085e239e810a764c3c04f5468 (patch) | |
| tree | 7f646331a2dc405b8c927ddb5b90130e73003ad9 | |
| parent | 77897b7637a9e55f45f6d79f7db5b78940b18797 (diff) | |
| parent | f2d94f015c7f8278342d04ffe0eb7e91e22d8e0d (diff) | |
| download | mullvadvpn-489adce8bae8267085e239e810a764c3c04f5468.tar.xz mullvadvpn-489adce8bae8267085e239e810a764c3c04f5468.zip | |
Merge branch 'minor-refactor'
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 58 | ||||
| -rw-r--r-- | talpid-core/src/dns/linux/systemd_resolved.rs | 4 |
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 { |
