diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2018-06-13 12:48:19 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2018-06-13 16:34:58 +0200 |
| commit | 558c9626bef1cbd701bf740e71054a53aafa7b74 (patch) | |
| tree | bdfc4c11024325f33428bad3e36115d6bd9e64bb | |
| parent | adcbd875ba59b248b5a63482a701582e78172fba (diff) | |
| download | mullvadvpn-558c9626bef1cbd701bf740e71054a53aafa7b74.tar.xz mullvadvpn-558c9626bef1cbd701bf740e71054a53aafa7b74.zip | |
Refactor out create_daemon that everyone can use
| -rw-r--r-- | mullvad-daemon/src/main.rs | 23 | ||||
| -rw-r--r-- | mullvad-daemon/src/system_service.rs | 12 |
2 files changed, 15 insertions, 20 deletions
diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index 43cc2e49e0..ff936ef8ea 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -886,16 +886,7 @@ fn run_standalone(config: cli::Config) -> Result<()> { warn!("Running daemon as a non-administrator user, clients might refuse to connect"); } - let log_dir = if config.log_to_file { - Some(mullvad_paths::log_dir().chain_err(|| "Unable to get log directory")?) - } else { - None - }; - let resource_dir = mullvad_paths::get_resource_dir(); - let cache_dir = mullvad_paths::cache_dir().chain_err(|| "Unable to get cache dir")?; - - let daemon = - Daemon::new(log_dir, resource_dir, cache_dir).chain_err(|| "Unable to initialize daemon")?; + let daemon = create_daemon(config)?; let shutdown_handle = daemon.shutdown_handle(); shutdown::set_shutdown_signal_handler(move || shutdown_handle.shutdown()) @@ -908,6 +899,18 @@ fn run_standalone(config: cli::Config) -> Result<()> { 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 + }; + let resource_dir = mullvad_paths::get_resource_dir(); + let cache_dir = mullvad_paths::cache_dir().chain_err(|| "Unable to get cache dir")?; + + Daemon::new(log_dir, resource_dir, cache_dir).chain_err(|| "Unable to initialize daemon") +} + fn log_version() { info!( "Starting {} - {} {}", diff --git a/mullvad-daemon/src/system_service.rs b/mullvad-daemon/src/system_service.rs index 1e602f75bb..649aa566fe 100644 --- a/mullvad-daemon/src/system_service.rs +++ b/mullvad-daemon/src/system_service.rs @@ -1,8 +1,6 @@ #![cfg(windows)] use std::ffi::OsString; -use std::fs; -use std::path::Path; use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::{mpsc, Arc}; use std::time::Duration; @@ -20,7 +18,7 @@ use windows_service::service_control_handler::{ use windows_service::service_dispatcher; use windows_service::service_manager::{ServiceManager, ServiceManagerAccess}; -use super::{get_resource_dir, Daemon, DaemonShutdownHandle, ErrorKind, Result, ResultExt}; +use super::{DaemonShutdownHandle, Result, ResultExt}; static SERVICE_NAME: &'static str = "MullvadVPN"; static SERVICE_DISPLAY_NAME: &'static str = "Mullvad VPN Service"; @@ -70,13 +68,7 @@ fn run_service(_arguments: Vec<OsString>) -> Result<()> { .set_pending_start(Duration::from_secs(1)) .unwrap(); - let resource_dir = config.resource_dir.unwrap_or_else(|| get_resource_dir()); - let cache_dir = match config.cache_dir { - Some(cache_dir) => cache_dir, - None => ::cache::get_cache_dir()?, - }; - let daemon = Daemon::new(config.tunnel_log_file, resource_dir, cache_dir) - .chain_err(|| "Unable to initialize daemon")?; + let daemon = ::create_daemon(config)?; let shutdown_handle = daemon.shutdown_handle(); // Register monitor that translates `ServiceControl` to Daemon events |
