summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-10-07 15:10:14 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-10-08 13:10:11 +0200
commitf2d94f015c7f8278342d04ffe0eb7e91e22d8e0d (patch)
tree7f646331a2dc405b8c927ddb5b90130e73003ad9
parent9dd71c0525ceaeb0f7e14543c7c745d7222a0781 (diff)
downloadmullvadvpn-f2d94f015c7f8278342d04ffe0eb7e91e22d8e0d.tar.xz
mullvadvpn-f2d94f015c7f8278342d04ffe0eb7e91e22d8e0d.zip
Remove some code duplication
-rw-r--r--mullvad-daemon/src/lib.rs58
1 files changed, 17 insertions, 41 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());
}
}