diff options
| -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()); } } |
