summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-04-09 13:50:25 +0200
committerDavid Lönnhager <david.l@mullvad.net>2024-04-09 13:50:25 +0200
commite51a201e46daad9ea92407d55842d8e96900ab67 (patch)
tree5fe705b6bb654dee9ed4383d28b21bcb286321b5
parent3b4eca779ac509b084a00e0ef0b8a336151b04cb (diff)
parentd0b9c89e24e8d6ea2568b883f39c9a8007c3b3ae (diff)
downloadmullvadvpn-e51a201e46daad9ea92407d55842d8e96900ab67.tar.xz
mullvadvpn-e51a201e46daad9ea92407d55842d8e96900ab67.zip
Merge branch 'fix-missing-log'
-rw-r--r--mullvad-daemon/src/main.rs25
-rw-r--r--mullvad-daemon/src/runtime.rs8
-rw-r--r--mullvad-daemon/src/system_service.rs4
-rw-r--r--mullvad-jni/src/lib.rs4
4 files changed, 27 insertions, 14 deletions
diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs
index 3566347152..4de3beb26a 100644
--- a/mullvad-daemon/src/main.rs
+++ b/mullvad-daemon/src/main.rs
@@ -1,9 +1,7 @@
use mullvad_daemon::{
logging,
management_interface::{ManagementInterfaceEventBroadcaster, ManagementInterfaceServer},
- rpc_uniqueness_check,
- runtime::new_runtime_builder,
- version, Daemon, DaemonCommandChannel, DaemonCommandSender,
+ rpc_uniqueness_check, runtime, version, Daemon, DaemonCommandChannel, DaemonCommandSender,
};
use std::{path::PathBuf, thread, time::Duration};
use talpid_types::ErrorExt;
@@ -22,11 +20,7 @@ const DAEMON_LOG_FILENAME: &str = "daemon.log";
const EARLY_BOOT_LOG_FILENAME: &str = "early-boot-fw.log";
fn main() {
- let runtime = new_runtime_builder().build().unwrap_or_else(|e| {
- eprintln!("{}", e.display_chain());
- std::process::exit(1);
- });
-
+ let runtime = new_runtime();
let exit_code = match runtime.block_on(run()) {
Ok(_) => 0,
Err(error) => {
@@ -44,6 +38,19 @@ fn main() {
std::process::exit(exit_code);
}
+fn new_runtime() -> tokio::runtime::Runtime {
+ let mut builder = match cli::get_config().command {
+ #[cfg(target_os = "windows")]
+ cli::Command::RunAsService | cli::Command::RegisterService => runtime::new_current_thread(),
+ _ => runtime::new_multi_thread(),
+ };
+
+ builder.build().unwrap_or_else(|e| {
+ eprintln!("{}", e.display_chain());
+ std::process::exit(1);
+ })
+}
+
async fn run() -> Result<(), String> {
let config = cli::get_config();
@@ -69,8 +76,8 @@ async fn run() -> Result<(), String> {
#[cfg(target_os = "windows")]
cli::Command::RunAsService => {
- init_logger(config, None)?;
assert_unique().await?;
+ let _ = init_daemon_logging(config)?;
system_service::run()
}
diff --git a/mullvad-daemon/src/runtime.rs b/mullvad-daemon/src/runtime.rs
index 34bdf60390..86d251db4c 100644
--- a/mullvad-daemon/src/runtime.rs
+++ b/mullvad-daemon/src/runtime.rs
@@ -1,7 +1,13 @@
use tokio::runtime;
-pub fn new_runtime_builder() -> runtime::Builder {
+pub fn new_multi_thread() -> runtime::Builder {
let mut builder = runtime::Builder::new_multi_thread();
builder.worker_threads(4).enable_all();
builder
}
+
+pub fn new_current_thread() -> runtime::Builder {
+ let mut builder = runtime::Builder::new_current_thread();
+ builder.enable_all();
+ builder
+}
diff --git a/mullvad-daemon/src/system_service.rs b/mullvad-daemon/src/system_service.rs
index 21b881d1e0..a5a76e72b4 100644
--- a/mullvad-daemon/src/system_service.rs
+++ b/mullvad-daemon/src/system_service.rs
@@ -1,5 +1,5 @@
use crate::cli;
-use mullvad_daemon::{runtime::new_runtime_builder, DaemonShutdownHandle};
+use mullvad_daemon::{runtime::new_multi_thread, DaemonShutdownHandle};
use once_cell::sync::Lazy;
use std::{
env,
@@ -98,7 +98,7 @@ pub fn handle_service_main(_arguments: Vec<OsString>) {
let log_dir = crate::get_log_dir(cli::get_config()).expect("Log dir should be available here");
- let runtime = new_runtime_builder().build();
+ let runtime = new_multi_thread().build();
let runtime = match runtime {
Err(error) => {
log::error!("{}", error.display_chain());
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 9264b5e895..64c9465313 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -19,7 +19,7 @@ use jnix::{
};
use mullvad_api::{rest::Error as RestError, StatusCode};
use mullvad_daemon::{
- device, exception_logging, logging, runtime::new_runtime_builder,
+ device, exception_logging, logging, runtime::new_multi_thread,
settings::patch::Error as PatchError, version, Daemon, DaemonCommandChannel,
};
use mullvad_types::{
@@ -551,7 +551,7 @@ fn spawn_daemon(
.map_err(Error::CreateGlobalReference)?;
let (tx, rx) = mpsc::channel();
- let runtime = new_runtime_builder()
+ let runtime = new_multi_thread()
.build()
.map_err(Error::InitializeTokioRuntime)?;