diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-10-07 15:10:14 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-10-08 13:10:11 +0200 |
| commit | f2d94f015c7f8278342d04ffe0eb7e91e22d8e0d (patch) | |
| tree | 7f646331a2dc405b8c927ddb5b90130e73003ad9 | |
| parent | 9dd71c0525ceaeb0f7e14543c7c745d7222a0781 (diff) | |
| download | mullvadvpn-f2d94f015c7f8278342d04ffe0eb7e91e22d8e0d.tar.xz mullvadvpn-f2d94f015c7f8278342d04ffe0eb7e91e22d8e0d.zip | |
Remove some code duplication
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 58 |
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()); } } |
