diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-06-15 01:47:28 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-06-21 03:42:30 +0200 |
| commit | 211dc8c08e9587f7d938c79da368245de312c255 (patch) | |
| tree | 21a45a49acc9c89c34a83522f7010fd0711ec48c | |
| parent | 856faacc8304b9fcb6e1ecb8846081fa6279c9fe (diff) | |
| download | mullvadvpn-211dc8c08e9587f7d938c79da368245de312c255.tar.xz mullvadvpn-211dc8c08e9587f7d938c79da368245de312c255.zip | |
Remove msg from log_error and take error by ref
| -rw-r--r-- | mullvad_daemon/src/main.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/mullvad_daemon/src/main.rs b/mullvad_daemon/src/main.rs index bfbc3de531..77540c7387 100644 --- a/mullvad_daemon/src/main.rs +++ b/mullvad_daemon/src/main.rs @@ -199,8 +199,8 @@ impl Daemon { fn handle_tunnel_exit(&mut self, result: tunnel::Result<()>) -> Result<()> { self.tunnel_close_handle = None; - if let Err(e) = result { - log_error("Tunnel exited in an unexpected way", e); + if let Err(e) = result.chain_err(|| "Tunnel exited in an unexpected way") { + log_error(&e); } self.set_state(TunnelState::NotRunning); self.apply_target_state() @@ -253,7 +253,12 @@ impl Daemon { match (self.target_state, self.state) { (TargetState::Secured, TunnelState::NotRunning) => { debug!("Triggering tunnel start"); - self.start_tunnel() + if let Err(e) = self.start_tunnel().chain_err(|| "Failed to start tunnel") { + log_error(&e); + self.management_interface_broadcaster.notify_error(&e); + self.target_state = TargetState::Unsecured; + } + Ok(()) } (TargetState::Unsecured, TunnelState::Down) | (TargetState::Unsecured, TunnelState::Up) => { @@ -316,17 +321,17 @@ impl Daemon { impl Drop for Daemon { fn drop(self: &mut Daemon) { - if let Err(e) = rpc_info::remove() { - log_error("Unable to clean up rpc address file", e); + if let Err(e) = rpc_info::remove().chain_err(|| "Unable to clean up rpc address file") { + log_error(&e); } } } -fn log_error<E>(msg: &str, error: E) +fn log_error<E>(error: &E) where E: error_chain::ChainedError { - error!("{}: {}", msg, error); + error!("{}", error); for e in error.iter().skip(1) { error!("Caused by {}", e); } |
