diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2019-04-11 16:23:38 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2019-04-12 12:07:56 +0200 |
| commit | 466edee473356d5709a01f6e26fc8236967395c5 (patch) | |
| tree | ea5a7e6d89a92f5620aa51841b6327e88843d386 | |
| parent | 11c3d35d7bef50416087555b8322057972fd1f28 (diff) | |
| download | mullvadvpn-466edee473356d5709a01f6e26fc8236967395c5.tar.xz mullvadvpn-466edee473356d5709a01f6e26fc8236967395c5.zip | |
Get rid of last remains of error-chain in mullvad-daemon
| -rw-r--r-- | Cargo.lock | 1 | ||||
| -rw-r--r-- | mullvad-daemon/Cargo.toml | 1 | ||||
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 9 | ||||
| -rw-r--r-- | mullvad-daemon/src/main.rs | 73 | ||||
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 2 |
5 files changed, 30 insertions, 56 deletions
diff --git a/Cargo.lock b/Cargo.lock index 3cfe9cbc90..615b812eac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1086,7 +1086,6 @@ dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "err-derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fern 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "ipnetwork 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/mullvad-daemon/Cargo.toml b/mullvad-daemon/Cargo.toml index 5d252c1217..b50b97d96a 100644 --- a/mullvad-daemon/Cargo.toml +++ b/mullvad-daemon/Cargo.toml @@ -16,7 +16,6 @@ edition = "2018" [dependencies] chrono = { version = "0.4", features = ["serde"] } clap = "2.25" -error-chain = "0.12" err-derive = "0.1.5" fern = { version = "0.5", features = ["colored"] } futures = "0.1" diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index 2e998a9245..aab7f406f7 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -9,8 +9,6 @@ #![deny(rust_2018_idioms)] #[macro_use] -extern crate error_chain; -#[macro_use] extern crate serde; @@ -193,10 +191,9 @@ impl Daemon { cache_dir: PathBuf, version: String, ) -> Result<Self> { - ensure!( - !rpc_uniqueness_check::is_another_instance_running(), - Error::DaemonIsAlreadyRunning - ); + if rpc_uniqueness_check::is_another_instance_running() { + return Err(Error::DaemonIsAlreadyRunning); + } let ca_path = resource_dir.join(mullvad_paths::resources::API_CA_FILENAME); let mut rpc_manager = mullvad_rpc::MullvadRpcFactory::with_cache_dir(&cache_dir, &ca_path); diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index 8f996032c6..71cd61ff31 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -8,14 +8,10 @@ #![deny(rust_2018_idioms)] -#[macro_use] -extern crate error_chain; - - -use error_chain::ChainedError; use log::{debug, error, info, warn}; use mullvad_daemon::Daemon; -use std::{thread, time::Duration}; +use std::{path::PathBuf, thread, time::Duration}; +use talpid_types::ErrorExt; mod cli; mod logging; @@ -26,40 +22,28 @@ mod version; const DAEMON_LOG_FILENAME: &str = "daemon.log"; -error_chain! { - errors { - LogError(msg: &'static str) { - description("Error setting up log") - display("Error setting up log: {}", msg) - } - } - foreign_links { - DaemonError(mullvad_daemon::Error); - } -} - fn main() { - let exit_code = match run() { + let config = cli::get_config(); + let log_dir = init_logging(&config).unwrap_or_else(|error| { + eprintln!("{}", error); + std::process::exit(1) + }); + let exit_code = match run_platform(&config, log_dir) { Ok(_) => 0, Err(error) => { - if let ErrorKind::LogError(_) = error.kind() { - eprintln!("{}", error.display_chain()); - } else { - error!("{}", error.display_chain()); - } + error!("{}", error); 1 } }; debug!("Process exiting with code {}", exit_code); - ::std::process::exit(exit_code); + std::process::exit(exit_code); } -fn run() -> Result<()> { - let config = cli::get_config(); +fn init_logging(config: &cli::Config) -> Result<Option<PathBuf>, String> { let log_dir = if config.log_to_file { Some( mullvad_paths::log_dir() - .chain_err(|| ErrorKind::LogError("Unable to get log directory"))?, + .map_err(|e| e.display_chain_with_msg("Unable to get log directory"))?, ) } else { None @@ -71,18 +55,17 @@ fn run() -> Result<()> { log_file.as_ref(), config.log_stdout_timestamps, ) - .chain_err(|| ErrorKind::LogError("Unable to initialize logger"))?; + .map_err(|e| e.display_chain_with_msg("Unable to initialize logger"))?; log_panics::init(); log_version(); if let Some(ref log_dir) = log_dir { info!("Logging to {}", log_dir.display()); } - - run_platform(&config) + Ok(log_dir) } #[cfg(windows)] -fn run_platform(config: &cli::Config) -> Result<()> { +fn run_platform(config: &cli::Config, log_dir: Option<PathBuf>) -> Result<(), String> { if config.run_as_service { system_service::run() } else { @@ -94,42 +77,38 @@ fn run_platform(config: &cli::Config) -> Result<()> { } install_result } else { - run_standalone(config) + run_standalone(log_dir) } } } #[cfg(not(windows))] -fn run_platform(config: &cli::Config) -> Result<()> { - run_standalone(config) +fn run_platform(_config: &cli::Config, log_dir: Option<PathBuf>) -> Result<(), String> { + run_standalone(log_dir) } -fn run_standalone(config: &cli::Config) -> Result<()> { +fn run_standalone(log_dir: Option<PathBuf>) -> Result<(), String> { if !running_as_admin() { warn!("Running daemon as a non-administrator user, clients might refuse to connect"); } - let daemon = create_daemon(config)?; + let daemon = create_daemon(log_dir)?; let shutdown_handle = daemon.shutdown_handle(); shutdown::set_shutdown_signal_handler(move || shutdown_handle.shutdown()) - .chain_err(|| "Unable to attach shutdown signal handler")?; + .map_err(|e| e.display_chain())?; - daemon.run()?; + daemon.run().map_err(|e| e.display_chain())?; info!("Mullvad daemon is quitting"); thread::sleep(Duration::from_millis(500)); Ok(()) } -fn create_daemon(config: &cli::Config) -> Result<Daemon> { - let log_dir = if config.log_to_file { - Some(mullvad_paths::log_dir().chain_err(|| "Unable to get log directory")?) - } else { - None - }; +fn create_daemon(log_dir: Option<PathBuf>) -> Result<Daemon, String> { let resource_dir = mullvad_paths::get_resource_dir(); - let cache_dir = mullvad_paths::cache_dir().chain_err(|| "Unable to get cache dir")?; + let cache_dir = mullvad_paths::cache_dir() + .map_err(|e| e.display_chain_with_msg("Unable to get cache dir"))?; Daemon::start( log_dir, @@ -137,7 +116,7 @@ fn create_daemon(config: &cli::Config) -> Result<Daemon> { cache_dir, version::PRODUCT_VERSION.to_owned(), ) - .chain_err(|| "Unable to initialize daemon") + .map_err(|e| e.display_chain_with_msg("Unable to initialize daemon")) } fn log_version() { diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index 24bf2df391..cb313ed653 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -1,4 +1,3 @@ -use error_chain::ChainedError; use jsonrpc_core::{ futures::{ future, @@ -30,6 +29,7 @@ use talpid_ipc; use talpid_types::{ net::{openvpn, wireguard}, tunnel::TunnelStateTransition, + ErrorExt, }; use uuid; |
